Compare commits

...

83 Commits

Author SHA1 Message Date
Package Updates
a571f235d9 Update package version to 1.123.1 2025-11-19 08:23:47 +00:00
Renovate Bot
8b20754424 chore(deps): update dependency element-hq/synapse to v1.142.1
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.142.0 | 1.142.1 |
2025-11-19 07:19:38 +00:00
Package Updates
a818184caa Update package version to 1.123.0 2025-11-12 07:51:11 +00:00
Renovate Bot
32abe00354 chore(deps): update dependency element-hq/synapse to v1.142.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.141.0 | 1.142.0 |
2025-11-12 07:19:38 +00:00
Johannes Zellner
257fb377f8 Make logo work in dark and bright mode 2025-11-06 18:08:22 +01:00
Package Updates
e00a1f76b5 Update package version to 1.122.0 2025-10-30 08:36:07 +00:00
Renovate Bot
8819664ebb chore(deps): update dependency element-hq/synapse to v1.141.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.140.0 | 1.141.0 |
2025-10-30 07:19:44 +00:00
Package Updates
b4f53756cf Update package version to 1.121.0 2025-10-15 09:01:21 +00:00
Renovate Bot
d67d5d0229 chore(deps): update dependency element-hq/synapse to v1.140.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.139.2 | 1.140.0 |
2025-10-14 15:42:38 +00:00
Package Updates
428dbc9b76 Update package version to 1.120.3 2025-10-11 08:49:00 +00:00
Renovate Bot
98c12107d0 chore(deps): update dependency matrix-org/synapse-s3-storage-provider to v1.6.0
| datasource      | package                                | from  | to    |
| --------------- | -------------------------------------- | ----- | ----- |
| github-releases | matrix-org/synapse-s3-storage-provider | 1.5.0 | 1.6.0 |
2025-10-11 06:19:39 +00:00
Package Updates
598555f81c Update package version to 1.120.2 2025-10-09 07:44:51 +00:00
Renovate Bot
d20e138c80 chore(deps): update dependency element-hq/synapse to v1.139.2
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.139.1 | 1.139.2 |
2025-10-09 06:19:41 +00:00
Package Updates
27d01a431f Update package version to 1.120.1 2025-10-07 16:56:40 +00:00
Renovate Bot
bce2eb54b5 chore(deps): update dependency element-hq/synapse to v1.139.1
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.139.0 | 1.139.1 |
2025-10-07 15:18:55 +00:00
Package Updates
1b5ea99bde Update package version to 1.120.0 2025-10-02 06:36:04 +00:00
Renovate Bot
d86e68af19 chore(deps): update dependency element-hq/synapse to v1.139.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.138.2 | 1.139.0 |
2025-10-02 06:19:40 +00:00
Package Updates
2c2d378f9e Update package version to 1.119.1 2025-09-25 13:24:51 +00:00
Vladimir D
07f5829320 tests updated 2025-09-25 16:48:47 +04:00
Girish Ramakrishnan
5433109318 remove room and message tests 2025-09-25 08:55:59 +02:00
Renovate Bot
ab9a3ac051 chore(deps): update dependency element-hq/synapse to v1.138.2
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.138.0 | 1.138.2 |
2025-09-25 06:19:40 +00:00
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
11 changed files with 1475 additions and 1678 deletions

View File

@@ -1316,3 +1316,194 @@
* Add an index to `current_state_delta_stream` table. ([#​17912](https://github.com/element-hq/synapse/issues/17912)) * 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)) * 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))
[1.119.1]
* Update synapse to 1.138.2
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.138.2)
* Drop support for Ubuntu 24.10 Oracular Oriole, and add support for Ubuntu 25.04 Plucky Puffin. This change was applied on top of 1.138.1. ([#​18962](https://github.com/element-hq/synapse/issues/18962))
[1.120.0]
* Update synapse to 1.139.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.139.0)
* /register requests from old application service implementations may break when using MAS
[1.120.1]
* Update synapse to 1.139.1
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.139.1)
* Fix [CVE-2025-61672](https://www.cve.org/CVERecord?id=CVE-2025-61672) / [GHSA-fh66-fcv5-jjfr](https://github.com/element-hq/synapse/security/advisories/GHSA-fh66-fcv5-jjfr). Lack of validation for device keys in Synapse before 1.139.1 allows an attacker registered on the victim homeserver to degrade federation functionality, unpredictably breaking outbound federation to other homeservers. ([#17097](https://github.com/element-hq/synapse/issues/17097))
* Drop support for unstable field names from the long-accepted [MSC2732](https://github.com/matrix-org/matrix-spec-proposals/pull/2732) (Olm fallback keys) proposal. This change allows unit tests to pass following the security patch above. ([#18996](https://github.com/element-hq/synapse/issues/18996))
[1.120.2]
* Update synapse to 1.139.2
[1.120.3]
* Update synapse-s3-storage-provider to 1.6.0
[1.121.0]
* Update synapse to 1.140.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.140.0)
* Add a new Media Query by ID Admin API that allows server admins to query and investigate the metadata of local or cached remote media via the origin/media_id identifier found in a Matrix Content URI. (#18911)
* Add a new Fetch Event Admin API to fetch an event by ID. (#18963)
* Update MSC4284: Policy Servers implementation to support signatures when available. (#18934)
* Add experimental implementation of the GET /_matrix/client/v1/rtc/transports endpoint for the latest draft of MSC4143: MatrixRTC. (#18967)
* Expose a defer_to_threadpool function in the Synapse Module API that allows modules to run a function on a separate thread in a custom threadpool. (#19032)
[1.122.0]
* Update synapse to 1.141.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.141.0)
[1.123.0]
* Update synapse to 1.142.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.142.0)
* Dropped support for Python 3.9
* SQLite 3.40.0+ is now required
* Deprecation of MacOS Python wheels
* Properly stop building wheels for Python 3.9 and free-threaded CPython. ([#19154](https://github.com/element-hq/synapse/issues/19154))
[1.123.1]
* Update synapse to 1.142.1
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.142.1)
* Fixed a bug introduced in v1.142.0 preventing subpaths in MAS endpoints from working. ([#19186](https://github.com/element-hq/synapse/issues/19186))

View File

@@ -5,8 +5,8 @@
"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.99.0", "version": "1.123.1",
"upstreamVersion": "1.119.0", "upstreamVersion": "1.142.1",
"healthCheckPath": "/", "healthCheckPath": "/",
"httpPort": 8008, "httpPort": 8008,
"memoryLimit": 536870912, "memoryLimit": 536870912,
@@ -44,9 +44,18 @@
"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.5.1", "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,32 +1,27 @@
FROM cloudron/base:4.2.0@sha256:46da2fffb36353ef714f97ae8e962bd2c212ca091108d768ba473078319a47f4 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"
# renovate: datasource=github-releases depName=element-hq/synapse versioning=semver extractVersion=^v(?<version>.+)$ # renovate: datasource=github-releases depName=element-hq/synapse versioning=semver extractVersion=^v(?<version>.+)$
ARG SYNAPSE_VERSION=1.119.0 ARG SYNAPSE_VERSION=1.142.1
# renovate: datasource=github-releases depName=matrix-org/synapse-s3-storage-provider versioning=semver extractVersion=^v(?<version>.+)$ # renovate: datasource=github-releases depName=matrix-org/synapse-s3-storage-provider versioning=semver extractVersion=^v(?<version>.+)$
ARG S3PROVIDER_VERSION=1.5.0 ARG S3PROVIDER_VERSION=1.6.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${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]
# Updated suffix list # Updated suffix list
RUN curl -L https://publicsuffix.org/list/public_suffix_list.dat -o /app/code/env/lib/python3.10/site-packages/publicsuffix2/public_suffix_list.dat 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"

BIN
logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 11 KiB

105
logo.svg Normal file
View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg:svg
width="92"
height="92"
viewBox="0 0 92 92"
version="1.1"
id="svg5"
sodipodi:docname="logo.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
inkscape:export-filename="logo.png"
inkscape:export-xdpi="534.26086"
inkscape:export-ydpi="534.26086"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<svg:defs
id="defs5" />
<sodipodi:namedview
id="namedview5"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="3.5066667"
inkscape:cx="34.93346"
inkscape:cy="46.340304"
inkscape:window-width="1280"
inkscape:window-height="654"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="matrix-logo-white" />
<!-- Generator: Sketch 55 (78076) - https://sketchapp.com -->
<svg:title
id="title1">matrix logo white</svg:title>
<svg:desc
id="desc1">Created with Sketch.</svg:desc>
<svg:g
id="Page-1"
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
style="fill:#000000">
<svg:g
id="matrix-logo-white"
fill="#FFFFFF"
fill-rule="nonzero"
style="fill:#000000">
<svg:g
id="g5"
transform="matrix(1.1943286,0,0,1.1943286,1.1945584,26.901573)"
style="fill:#666666;stroke:none;stroke-opacity:1;stroke-width:0.99972487;stroke-dasharray:none">
<svg:polygon
id="Path"
points="0.93631479,31.249567 3.1294248,31.249567 3.1294248,31.981769 0.094721871,31.981769 0.094721871,9.495549e-05 3.1294248,9.495549e-05 3.1294248,0.73220178 0.93631479,0.73220178 "
style="fill:#666666;stroke:none;stroke-opacity:1;stroke-width:0.99972487;stroke-dasharray:none" />
<svg:path
d="m 9.3857143,10.406647 v 1.544356 h 0.0439 c 0.4113148,-0.587869 0.9067317,-1.04432 1.4871047,-1.367929 0.579994,-0.323038 1.244849,-0.485222 1.993711,-0.485222 0.719469,0 1.376833,0.140059 1.971523,0.419228 0.59488,0.279644 1.046587,0.772083 1.355025,1.478172 0.337548,-0.49994 0.796461,-0.941293 1.376834,-1.323679 0.579993,-0.382196 1.266561,-0.573721 2.059797,-0.573721 0.602181,0 1.159988,0.07369 1.674463,0.220771 0.513717,0.147086 0.95433,0.382386 1.321555,0.705899 0.366846,0.323799 0.653192,0.746635 0.859229,1.268321 0.205468,0.522635 0.308439,1.15105 0.308439,1.88667 v 7.633092 l -3.128382,-9.5e-5 v -6.464 c 0,-0.382196 -0.0146,-0.742551 -0.04409,-1.081068 -0.02968,-0.338041 -0.110082,-0.632024 -0.242257,-0.882421 -0.132269,-0.249828 -0.327117,-0.44857 -0.583786,-0.595751 -0.257048,-0.146516 -0.605973,-0.220487 -1.046492,-0.220487 -0.440518,0 -0.796744,0.08508 -1.068489,0.253626 -0.271934,0.169401 -0.484703,0.390173 -0.63878,0.661935 -0.154172,0.272427 -0.257048,0.581128 -0.308344,0.926956 -0.05167,0.345448 -0.07718,0.694884 -0.07718,1.047834 v 6.353471 h -3.128097 v -6.397626 c 0,-0.338231 -0.0077,-0.672949 -0.02181,-1.003679 -0.01498,-0.33111 -0.07718,-0.636202 -0.187547,-0.915846 -0.110177,-0.279169 -0.293837,-0.503644 -0.55079,-0.673045 -0.257048,-0.168545 -0.635177,-0.253626 -1.134482,-0.253626 -0.147061,0 -0.341625,0.03314 -0.583692,0.09951 -0.242351,0.06618 -0.477497,0.19143 -0.704962,0.374979 -0.227939,0.184024 -0.4223133,0.44876 -0.5838809,0.794113 -0.1616625,0.345828 -0.2423515,0.797816 -0.2423515,1.356629 v 6.618492 l -3.1280025,9.5e-5 V 10.406647 Z"
id="path1"
style="fill:#666666;stroke:none;stroke-opacity:1;stroke-width:0.99972487;stroke-dasharray:none" />
<svg:path
d="m 25.841719,12.083561 c 0.322851,-0.485508 0.734261,-0.875015 1.233755,-1.169472 0.499115,-0.294077 1.06062,-0.503549 1.684987,-0.6287 0.624084,-0.124867 1.252055,-0.187632 1.883534,-0.187632 0.572882,0 1.152781,0.04064 1.740265,0.121258 0.58739,0.08119 1.123578,0.239478 1.608281,0.474492 0.484608,0.235205 0.881037,0.562707 1.18957,0.98165 0.308439,0.419134 0.462611,0.974434 0.462611,1.665804 v 5.934149 c 0,0.515418 0.02939,1.007572 0.08827,1.478172 0.05831,0.470884 0.161283,0.823834 0.308249,1.059038 h -3.172092 c -0.05888,-0.176617 -0.106764,-0.356557 -0.143268,-0.540581 -0.03698,-0.183549 -0.06267,-0.371086 -0.07709,-0.562422 -0.4994,0.514849 -1.087073,0.875205 -1.762168,1.081164 -0.675759,0.205388 -1.366024,0.3087 -2.070986,0.3087 -0.543584,0 -1.050285,-0.06628 -1.520196,-0.198457 C 26.82534,21.768261 26.414309,21.562493 26.061876,21.282564 25.709347,21.003585 25.434,20.65054 25.235738,20.224095 25.037476,19.79765 24.938203,19.289733 24.938203,18.701674 c 0,-0.646932 0.113685,-1.180297 0.341719,-1.599051 0.227466,-0.419418 0.521018,-0.753851 0.881322,-1.004154 0.359639,-0.249923 0.770764,-0.43746 1.233565,-0.562421 0.462515,-0.124867 0.928729,-0.223906 1.398735,-0.297876 0.470007,-0.07331 0.932523,-0.132273 1.387927,-0.176332 0.455215,-0.04425 0.859229,-0.110528 1.211663,-0.198742 0.352528,-0.08821 0.631289,-0.216688 0.837136,-0.385994 0.205278,-0.169116 0.300759,-0.41543 0.286346,-0.739229 0,-0.338041 -0.05499,-0.60667 -0.16517,-0.805127 -0.110082,-0.198457 -0.257048,-0.35314 -0.440519,-0.463383 -0.183659,-0.110243 -0.396618,-0.183834 -0.63878,-0.220771 -0.242446,-0.03627 -0.503381,-0.05508 -0.782048,-0.05508 -0.616877,0 -1.101485,0.132463 -1.454013,0.397199 -0.352339,0.264736 -0.558376,0.706184 -0.616878,1.32368 h -3.128097 c 0.04381,-0.735146 0.227086,-1.345804 0.5506,-1.830837 z m 6.179109,4.423311 c -0.198167,0.06609 -0.41122,0.121069 -0.638685,0.165318 -0.22775,0.04415 -0.466309,0.081 -0.715961,0.110243 -0.249842,0.02972 -0.499494,0.06628 -0.748957,0.110433 -0.235145,0.04378 -0.466403,0.103122 -0.693774,0.176333 -0.227939,0.07397 -0.426201,0.173009 -0.59488,0.29797 -0.169152,0.125056 -0.30493,0.283442 -0.407711,0.474208 -0.102876,0.19124 -0.154172,0.434041 -0.154172,0.728118 0,0.27917 0.0513,0.514849 0.154172,0.705615 0.102781,0.191525 0.242541,0.342219 0.41871,0.452463 0.17617,0.110243 0.381637,0.187632 0.616972,0.231501 0.234672,0.04425 0.477023,0.06628 0.72677,0.06628 0.616783,0 1.0939,-0.102742 1.432017,-0.30889 0.337642,-0.205674 0.587105,-0.452178 0.748957,-0.739229 0.161378,-0.28667 0.260651,-0.576569 0.29744,-0.871121 0.03641,-0.294077 0.05499,-0.529472 0.05499,-0.705899 v -1.169472 c -0.132364,0.11803 -0.297534,0.209851 -0.495891,0.27613 z"
id="Shape"
style="fill:#666666;stroke:none;stroke-opacity:1;stroke-width:0.99972487;stroke-dasharray:none" />
<svg:path
d="m 43.883533,10.406647 v 2.095858 h -2.290866 v 5.647857 c 0,0.529187 0.08799,0.882326 0.264349,1.058659 0.17598,0.176522 0.528698,0.264736 1.057396,0.264736 0.176264,0 0.344943,-0.0072 0.506606,-0.02203 0.161472,-0.01443 0.315739,-0.03684 0.462515,-0.06609 v 2.426777 c -0.264348,0.04415 -0.558185,0.0734 -0.881131,0.0884 -0.32304,0.01415 -0.63878,0.02184 -0.947219,0.02184 -0.484608,0 -0.94371,-0.03323 -1.376833,-0.09951 C 40.244943,21.757154 39.863211,21.62877 39.53287,21.43734 39.202339,21.246385 38.941593,20.973957 38.750822,20.621008 38.559671,20.268343 38.46438,19.804865 38.46438,19.230954 v -6.72845 H 36.569943 V 10.406647 H 38.46438 V 6.9871098 h 3.128193 v 3.4195372 z"
id="path2"
style="fill:#666666;stroke:none;stroke-opacity:1;stroke-width:0.99972487;stroke-dasharray:none" />
<svg:path
d="m 48.355373,10.406647 v 2.117982 h 0.04409 c 0.146586,-0.353234 0.344753,-0.680166 0.59469,-0.981935 0.249747,-0.301199 0.535904,-0.558813 0.859039,-0.772083 0.322851,-0.21289 0.668173,-0.378397 1.035683,-0.496427 0.366751,-0.11746 0.748862,-0.176522 1.14548,-0.176522 0.205563,0 0.432933,0.03703 0.68287,0.110433 v 2.912285 c -0.147061,-0.02963 -0.323325,-0.05545 -0.528698,-0.07729 -0.205752,-0.02213 -0.403919,-0.03323 -0.59488,-0.03323 -0.572787,0 -1.057395,0.09591 -1.453729,0.28686 -0.396524,0.191241 -0.715866,0.452083 -0.958312,0.783098 -0.242257,0.33111 -0.415203,0.716914 -0.517889,1.158267 -0.102687,0.441068 -0.154077,0.919359 -0.154077,1.434018 V 21.81232 H 45.381542 V 10.406647 Z"
id="path3"
style="fill:#666666;stroke:none;stroke-opacity:1;stroke-width:0.99972487;stroke-dasharray:none" />
<svg:path
d="m 54.038875,8.6416142 v -2.581175 h 3.128382 v 2.581175 z m 3.128382,1.7650328 V 21.812415 H 54.038875 V 10.406647 Z"
id="path4"
style="fill:#666666;stroke:none;stroke-opacity:1;stroke-width:0.99972487;stroke-dasharray:none" />
<svg:polygon
id="polygon4"
points="61.94725,21.81251 58.444912,21.81251 62.542225,15.811988 58.79725,10.406647 62.365866,10.406647 64.37067,13.384926 66.353382,10.406647 69.811915,10.406647 66.067035,15.745614 70.274715,21.81251 66.705815,21.81251 64.32658,18.216546 "
style="fill:#666666;stroke:none;stroke-opacity:1;stroke-width:0.99972487;stroke-dasharray:none" />
<svg:polygon
id="polygon5"
points="74.093837,0.73220178 71.900727,0.73220178 71.900727,9.495549e-05 74.93562,9.495549e-05 74.93562,31.981769 71.900727,31.981769 71.900727,31.249567 74.093837,31.249567 "
style="fill:#666666;stroke:none;stroke-opacity:1;stroke-width:0.99972487;stroke-dasharray:none" />
</svg:g>
</svg:g>
</svg:g>
<script />
<svg:metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>matrix logo white</dc:title>
</cc:Work>
</rdf:RDF>
</svg:metadata>
</svg:svg>

After

Width:  |  Height:  |  Size: 9.6 KiB

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,14 +33,14 @@ 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 ".auto_join_rooms=[]" /app/data/configs/homeserver.yaml yq eval -i ".form_secret=\"$(pwgen -1s 64)\"" /app/data/configs/homeserver.yaml
yq eval -i ".auto_join_rooms[0]=\"#discuss:${server_name}\"" /app/data/configs/homeserver.yaml
if [[ -z "${CLOUDRON_OIDC_ISSUER:-}" ]]; then if [[ -z "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
yq eval -i ".enable_registration=true" /app/data/configs/homeserver.yaml yq eval -i ".enable_registration=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.enabled=true" /app/data/configs/homeserver.yaml
yq eval -i "del(.password_providers)" /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 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 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
@@ -67,10 +69,9 @@ yq eval -i ".email.notif_from=\"${CLOUDRON_MAIL_FROM_DISPLAY_NAME:-Matrix} <${CL
# oidc # oidc
if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
yq eval -i "del(.password_providers)" /app/data/configs/homeserver.yaml # remove old ldap config
echo " ==> Configuring OIDC auth" 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_id=\"cloudron\"" /app/data/configs/homeserver.yaml
yq eval -i ".oidc_providers[0].idp_name=\"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].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_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].client_secret=\"${CLOUDRON_OIDC_CLIENT_SECRET}\"" /app/data/configs/homeserver.yaml
@@ -84,10 +85,9 @@ if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
yq eval -i ".oidc_providers[0].skip_verification=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.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.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)
@@ -100,7 +100,7 @@ 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

2456
test/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -9,9 +9,9 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"chromedriver": "^129.0.2", "chromedriver": "^142.0.3",
"expect.js": "^0.3.1", "expect.js": "^0.3.1",
"mocha": "^10.7.3", "mocha": "^11.7.5",
"selenium-webdriver": "^4.25.0" "selenium-webdriver": "^4.38.0"
} }
} }

View File

@@ -91,6 +91,7 @@ describe('Application life cycle test', function () {
async function updateSynapseConfig() { async function updateSynapseConfig() {
console.log(`Setting Synapse Matrix server location to "https://${app.fqdn}"`); 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 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}`); execSync(`cloudron restart --app ${ELEMENT_LOCATION}`);
// wait when all services are up and running // wait when all services are up and running
@@ -106,61 +107,150 @@ describe('Application life cycle test', function () {
await browser.get(`https://${elementApp.fqdn}/#/register`); await browser.get(`https://${elementApp.fqdn}/#/register`);
await waitForElement(By.xpath('//input[@label="Username"]')); await waitForElement(By.xpath('//input[@label="Username"]'));
await browser.findElement(By.xpath('//input[@label="Username"]')).sendKeys(USERNAME); await browser.findElement(By.xpath('//input[@label="Username"]')).sendKeys(USERNAME);
await browser.sleep(2000);
await browser.findElement(By.xpath('//input[@label="Password"]')).sendKeys(PASSWORD); await browser.findElement(By.xpath('//input[@label="Password"]')).sendKeys(PASSWORD);
await browser.sleep(2000);
await browser.findElement(By.xpath('//input[@label="Confirm password"]')).sendKeys(PASSWORD); await browser.findElement(By.xpath('//input[@label="Confirm password"]')).sendKeys(PASSWORD);
await browser.sleep(2000);
await browser.findElement(By.xpath('//input[@value="Register"]')).click(); await browser.findElement(By.xpath('//input[@value="Register"]')).click();
await browser.sleep(2000);
await waitForElement(By.xpath('//h1[text()="You\'re in"]')); await waitForElement(By.xpath('//h1[text()="You\'re in"] | //h1[contains(., "Welcome")]'));
await browser.sleep(2000); 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 browser.findElement(By.xpath('//div[@role="button" and text()="Skip"]')).click();
await browser.sleep(2000); }
await waitForElement(By.xpath(`//h1[contains(., "Welcome")]`)); await waitForElement(By.xpath(`//h1[contains(., "Welcome")]`));
} }
async function loginOIDC(username, password, hasSession, proceedWithReset) { async function loginOIDCOld(username, password, alreadyAuthenticated, proceedWithReset) {
browser.manage().deleteAllCookies();
await browser.get(`https://${elementApp.fqdn}/#/login`); await browser.get(`https://${elementApp.fqdn}/#/login`);
await browser.sleep(6000);
await waitForElement(By.xpath('//div[@role="button" and contains(., "Continue with Cloudron")]'));
await browser.findElement(By.xpath('//div[@role="button" and contains(., "Continue with Cloudron")]')).click();
await browser.sleep(2000); await browser.sleep(2000);
if (!hasSession) { await waitForElement(By.css('.mx_Dropdown_arrow'));
await waitForElement(By.xpath('//input[@name="username"]')); await browser.findElement(By.css('.mx_Dropdown_arrow')).click();
await browser.findElement(By.xpath('//input[@name="username"]')).sendKeys(username); await waitForElement(By.id('mx_LanguageDropdown__en'));
await browser.findElement(By.xpath('//input[@name="password"]')).sendKeys(password); await browser.findElement(By.id('mx_LanguageDropdown__en')).click();
await browser.sleep(2000); 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 browser.findElement(By.id('loginSubmitButton')).click();
await browser.sleep(2000);
} }
await waitForElement(By.xpath('//p[@class="confirm-trust" and contains(., "Continuing will grant ")]')); await waitForElement(By.xpath('//p[@class="confirm-trust" and contains(., "Continuing will grant ")]'));
await browser.findElement(By.xpath('//a[contains(., "Continue")]')).click(); await browser.findElement(By.xpath('//a[contains(., "Continue")]')).click();
await browser.sleep(2000);
if (proceedWithReset) { 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 browser.findElement(By.xpath('//div[text()="Proceed with reset"]')).click();
await waitForElement(By.xpath('//button[text()="Continue"]')); 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[text()="Continue"]')).click(); 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('//div[text()="Copy"]')); 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('//div[text()="Copy"]')).click(); 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"]'));
await browser.sleep(1000); 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 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('//h2[text()="Confirm your identity"]'));
await waitForElement(By.xpath('//button[text()="Can\'t confirm?"]'));
await browser.findElement(By.xpath('//button[text()="Can\'t confirm?"]')).click();
await waitForElement(By.xpath('//button[text()="Continue"]')); await waitForElement(By.xpath('//button[text()="Continue"]'));
await browser.findElement(By.xpath('//button[text()="Continue"]')).click(); await browser.findElement(By.xpath('//button[text()="Continue"]')).click();
await waitForElement(By.xpath('//button[text()="Done"]')); await waitForElement(By.xpath('//button[text()="Done"] | //div[text()="Single Sign On"]'));
await browser.findElement(By.xpath('//button[text()="Done"]')).click();
await waitForElement(By.xpath('//div[text()="Cancel"]')); if (await browser.findElements(By.xpath('//div[text()="Single Sign On"]')).then(found => !!found.length)) {
await browser.findElement(By.xpath('//div[text()="Cancel"]')).click();
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 browser.sleep(3000);
@@ -175,7 +265,7 @@ describe('Application life cycle test', function () {
await browser.findElement(By.xpath('//input[@value="Sign in"]')).click(); await browser.findElement(By.xpath('//input[@value="Sign in"]')).click();
await browser.sleep(5000); await browser.sleep(5000);
await skipVerification(); await skipVerification();
await browser.wait(until.elementLocated(By.xpath('//span[text()="Rooms"]')), TEST_TIMEOUT); await browser.wait(until.elementLocated(By.xpath('//h1[contains(., "Welcome")] | //span[text()="Rooms"]')), TEST_TIMEOUT);
} }
async function skipVerification() { async function skipVerification() {
@@ -209,46 +299,7 @@ describe('Application life cycle test', function () {
async function isLoggedIn() { async function isLoggedIn() {
await browser.get(`https://${elementApp.fqdn}/#/home`); await browser.get(`https://${elementApp.fqdn}/#/home`);
await browser.wait(until.elementLocated(By.xpath('//span[text()="Rooms"]')), TEST_TIMEOUT); await browser.wait(until.elementLocated(By.xpath('//h1[contains(., "Welcome")] | //span[text()="Rooms"]')), TEST_TIMEOUT);
}
async function createRoom() {
await browser.get(`https://${elementApp.fqdn}/#/home`);
await browser.sleep(4000);
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(2000);
await browser.findElement(By.xpath('//li[@role="menuitem" and @aria-label="New room"]')).click();
await browser.sleep(2000);
await browser.findElement(By.xpath('//input[@label="Name"]')).sendKeys(ROOM_NAME);
await browser.sleep(2000);
await browser.findElement(By.xpath('//button[text()="Create room"]')).click();
await browser.sleep(2000);
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); });
@@ -263,12 +314,9 @@ describe('Application life cycle test', function () {
it('can get Element app info', getElementAppInfo); it('can get Element app info', getElementAppInfo);
it('can register new user', registerUser); it('can register new user', registerUser);
it('create room', createRoom);
it('can send message', sendMessage);
it('can logout', logout); // from auto-login it('can logout', logout); // from auto-login
it('can login', login); it('can login', login);
it('check room', checkRoom);
it('can logout', logout); it('can logout', logout);
it('uninstall element-web app', async function () { it('uninstall element-web app', async function () {
@@ -285,17 +333,14 @@ describe('Application life cycle test', function () {
it('can get Element app info', getElementAppInfo); it('can get Element app info', getElementAppInfo);
it('update element-app config', updateSynapseConfig); it('update element-app config', updateSynapseConfig);
it('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, false, false /* proceedWithReset */)); 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 get app info', getAppInfo);
it('can restart app', function () { execSync(`cloudron restart ${app.id}`); }); 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('backup app', function () { execSync(`cloudron backup create --app ${app.id}`, EXEC_ARGS); });
it('is logged in', isLoggedIn); it('is logged in', isLoggedIn);
it('check room', checkRoom);
it('restore app', async function () { it('restore app', async function () {
const backups = JSON.parse(execSync(`cloudron backup list --raw --app ${app.id}`)); const backups = JSON.parse(execSync(`cloudron backup list --raw --app ${app.id}`));
@@ -310,12 +355,11 @@ describe('Application life cycle test', function () {
}); });
it('is logged in', isLoggedIn); it('is logged in', isLoggedIn);
it('check room', checkRoom);
it('can send message', sendMessage);
it('can logout', logout); it('can logout', logout);
it('can get app info', getAppInfo); it('can get app info', getAppInfo);
it('move to different location', async 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();
await browser.get('about:blank'); await browser.get('about:blank');
@@ -323,13 +367,9 @@ describe('Application life cycle test', function () {
getAppInfo(); getAppInfo();
await browser.sleep(15000); await browser.sleep(15000);
}); });
xit('update element-app config', updateSynapseConfig);
it('update element-app config', updateSynapseConfig); xit('can get Element app info', getElementAppInfo);
xit('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, true, true));
it('can get Element app info', getElementAppInfo);
it('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, true, true /* proceedWithReset */));
it('check room', checkRoom);
it('can send message', sendMessage);
it('uninstall app', async function () { it('uninstall app', async function () {
await browser.get('about:blank'); await browser.get('about:blank');
@@ -347,14 +387,13 @@ describe('Application life cycle test', function () {
it('can install element-web app (update)', function () { execSync('cloudron install --appstore-id im.riot.cloudronapp --location ' + ELEMENT_LOCATION, EXEC_ARGS); }); 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('can get Element app info', getElementAppInfo);
it('update element-app config', updateSynapseConfig); it('update element-app config', updateSynapseConfig);
it('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, false, false /* proceedWithReset */)); it('can login via OIDC', loginOIDCOld.bind(null, USERNAME, PASSWORD, false, false));
it('is logged in', isLoggedIn); it('is logged in', isLoggedIn);
it('create room', createRoom);
it('can send message', sendMessage);
it('can logout', logout); it('can logout', logout);
it('clear cache', clearCache);
it('can update', async function () { it('can update', async function () {
await browser.get('about:blank'); await browser.get('about:blank');
@@ -363,11 +402,9 @@ describe('Application life cycle test', function () {
}); });
it('can get Element app info', getElementAppInfo); it('can get Element app info', getElementAppInfo);
it('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, true, true /* proceedWithReset */)); it('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, false, true));
it('is logged in', isLoggedIn); it('is logged in', isLoggedIn);
it('check room', checkRoom);
it('can send message', sendMessage);
it('can get app info', getAppInfo);
it('uninstall app', async function () { it('uninstall app', async function () {
await browser.get('about:blank'); await browser.get('about:blank');