Compare commits
109 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2859cc73d0 | ||
|
|
aae5a5eecd | ||
|
|
9ed6f56792 | ||
|
|
404f794d10 | ||
|
|
8d5978a8e0 | ||
|
|
c380911b76 | ||
|
|
ac332c311a | ||
|
|
6f78e44bf2 | ||
|
|
2c407c2f3c | ||
|
|
1069750c78 | ||
|
|
99b08d6c0a | ||
|
|
b2e7800788 | ||
|
|
e915c9837c | ||
|
|
8b9c4141a2 | ||
|
|
760a37bdb2 | ||
|
|
d4f05c3748 | ||
|
|
401535ce2d | ||
|
|
fbf2ac8ef4 | ||
|
|
4d0bfd8bf1 | ||
|
|
0d8f2eab6f | ||
|
|
0bc489a337 | ||
|
|
ce0f8eb9be | ||
|
|
f47064f648 | ||
|
|
75d97f2bb3 | ||
|
|
43f64a052d | ||
|
|
27e6c5a442 | ||
|
|
8983e8fcee | ||
|
|
4ec76880a0 | ||
|
|
01ed3cc5ab | ||
|
|
6e4c16ba2e | ||
|
|
b2f3950795 | ||
|
|
2844b64621 | ||
|
|
20582a7fe6 | ||
|
|
de875e14f6 | ||
|
|
6ca10fe63d | ||
|
|
08e65a0769 | ||
|
|
bc031e515e | ||
|
|
ce74f2b418 | ||
|
|
292ffd482b | ||
|
|
8267b04c4f | ||
|
|
4ab831470b | ||
|
|
203fcc8baf | ||
|
|
dbb03144dd | ||
|
|
3e384b6ea4 | ||
|
|
2b70590b4f | ||
|
|
f32618bc44 | ||
|
|
63389b8969 | ||
|
|
2faf4a83c1 | ||
|
|
0de4fcd2c1 | ||
|
|
4501f517cd | ||
|
|
50b81437a3 | ||
|
|
cb2effd01e | ||
|
|
8a0741d6a2 | ||
|
|
8605a2801f | ||
|
|
39b8fe59e8 | ||
|
|
ab0335ff1a | ||
|
|
e6d27ee341 | ||
|
|
306ee5dadb | ||
|
|
e6b9d6cafb | ||
|
|
8e02930fbd | ||
|
|
8c3209768d | ||
|
|
cdab116284 | ||
|
|
092b466ff4 | ||
|
|
6177240cf6 | ||
|
|
cf22aa6ae7 | ||
|
|
aa02b23016 | ||
|
|
2cd92623e2 | ||
|
|
ee7878d3d2 | ||
|
|
33dca51dcd | ||
|
|
122b16805f | ||
|
|
3a69b0c615 | ||
|
|
f27425775e | ||
|
|
47855846f5 | ||
|
|
96bfd2839c | ||
|
|
e6f8f7b246 | ||
|
|
426035f1d5 | ||
|
|
c2d2f9bd03 | ||
|
|
4e5fb767f6 | ||
|
|
feb0208b8d | ||
|
|
ec4900372c | ||
|
|
340a757d88 | ||
|
|
93ec693780 | ||
|
|
668112e865 | ||
|
|
233a26a8db | ||
|
|
5703b98d6f | ||
|
|
ee10da9df5 | ||
|
|
7123688a92 | ||
|
|
38cd11c0b7 | ||
|
|
d06f83a567 | ||
|
|
fb83f5a54e | ||
|
|
ad4d18e706 | ||
|
|
80425602a3 | ||
|
|
de44651747 | ||
|
|
79c17c17f1 | ||
|
|
605a809a32 | ||
|
|
b5963b4276 | ||
|
|
a6c93ac360 | ||
|
|
b5662ec4dc | ||
|
|
6775418daf | ||
|
|
66231bcae5 | ||
|
|
acd9e9cbf6 | ||
|
|
f7a3528db0 | ||
|
|
affa9850a3 | ||
|
|
ad9429c622 | ||
|
|
208b5b689d | ||
|
|
54428229bb | ||
|
|
805349b360 | ||
|
|
47dcff5e35 | ||
|
|
260198817d |
@@ -430,3 +430,341 @@
|
||||
* Add a configuration option which allows enabling opentracing by user id. (#9978)
|
||||
* Enable experimental support for MSC2946 (spaces summary API) and MSC3083 (restricted join rules) by default. (#10011)
|
||||
|
||||
[1.25.1]
|
||||
* Update Synapse to 1.35.1
|
||||
* Fix a bug introduced in v1.35.0 where invite-only rooms would be shown to all users in a space, regardless of if the user had access to it. (#10109)
|
||||
|
||||
[1.26.0]
|
||||
* Update Synapse to 1.36.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.36.0)
|
||||
|
||||
[1.27.0]
|
||||
* Update Synapse to 1.38.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.38.0)
|
||||
* Implement refresh tokens as specified by MSC2918. (#9450)
|
||||
* Add support for evicting cache entries based on last access time. (#10205)
|
||||
* Omit empty fields from the /sync response. Contributed by @deepbluev7. (#10214)
|
||||
* Improve validation on federation send_{join,leave,knock} endpoints. (#10225, #10243)
|
||||
* Mark events received over federation which fail a spam check as "soft-failed". (#10263)
|
||||
* Add metrics for new inbound federation staging area. (#10284)
|
||||
* Add script to print information about recently registered users. (#10290)
|
||||
|
||||
[1.27.1]
|
||||
* Update Synapse to 1.38.1
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.38.1)
|
||||
|
||||
[1.28.0]
|
||||
* Update Synapse to 1.39.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.39.0)
|
||||
|
||||
[1.29.0]
|
||||
* Update Synapse to 1.40.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.40.0)
|
||||
|
||||
[1.30.0]
|
||||
* Update Synapse to 1.41.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.41.0)
|
||||
|
||||
[1.30.1]
|
||||
* Send logs to the console
|
||||
* Fix postinstall message about federation
|
||||
|
||||
[1.30.2]
|
||||
* Update Synapse to 1.41.1
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.41.1)
|
||||
* GHSA-3x4c-pq33-4w3q / CVE-2021-39164: Enumerating a private room's list of members and their display names.
|
||||
* GHSA-jj53-8fmw-f2w2 / CVE-2021-39163: Disclosing a private room's name, avatar, topic, and number of members.
|
||||
|
||||
[1.31.0]
|
||||
* Update Synapse to 1.42.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.42.0)
|
||||
* Support room version 9 from MSC3375. (#10747)
|
||||
* Add support for MSC3231: Token authenticated registration. Users can be required to submit a token during registration to authenticate themselves. Contributed by Callum Brown. (#10142)
|
||||
* Add support for MSC3283: Expose enable_set_displayname in capabilities. (#10452)
|
||||
* Port the PresenceRouter module interface to the new generic interface. (#10524)
|
||||
* Add pagination to the spaces summary based on updates to MSC2946. (#10613, #10725)
|
||||
|
||||
[1.32.0]
|
||||
* Update Synapse to 1.43.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.43.0)
|
||||
|
||||
[1.33.0]
|
||||
* Update Synapse to 1.44.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.44.0)
|
||||
* Only allow the MSC2716 /batch_send?chunk_id=xxx endpoint to connect to an already existing insertion event. (#10776)
|
||||
* Improve oEmbed URL previews by processing the author name, photo, and video information. (#10814, #10819)
|
||||
* Speed up responding with large JSON objects to requests. (#10868, #10905)
|
||||
* Add a user_may_create_room_with_invites spam checker callback to allow modules to allow or deny a room creation request based on the invites and/or 3PID invites it includes. (#10898)
|
||||
|
||||
[1.34.0]
|
||||
* Update Synapse to 1.45.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.45.0)
|
||||
* Fix a long-standing bug when using multiple event persister workers where events were not correctly sent down /sync due to a race. (#11045)
|
||||
* Fix a bug introduced in Synapse 1.45.0rc1 where the user directory would stop updating if it processed an event from a user not in the users table. (#11053)
|
||||
* Fix a bug introduced in Synapse 1.44.0 when logging errors during oEmbed processing. (#11061)
|
||||
|
||||
[1.34.1]
|
||||
* Update Synapse to 1.45.1
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.45.1)
|
||||
* Revert change to counting of deactivated users towards the monthly active users limit, introduced in 1.45.0rc1. (#11127)
|
||||
|
||||
[1.35.0]
|
||||
* Update Synapse to 1.46.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.46.0)
|
||||
* Fix a bug introduced in v1.46.0rc1 where URL previews of some XML documents would fail. (#11196)
|
||||
|
||||
[1.36.0]
|
||||
* Update Synapse to 1.47.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.47.0)
|
||||
* Fix a bug introduced in 1.47.0rc1 which caused worker processes to not halt startup in the presence of outstanding database migrations. (#11346)
|
||||
* Fix a bug introduced in 1.47.0rc1 which prevented the 'remove deleted devices from device_inbox column' background process from running when updating from a recent Synapse version. (#11303, #11353)
|
||||
|
||||
[1.36.1]
|
||||
* Update Synapse to 1.47.1
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.47.1)
|
||||
* GHSA-3hfw-x7gx-437c / CVE-2021-41281: Path traversal when downloading remote media.
|
||||
|
||||
[1.37.0]
|
||||
* Update Synapse to 1.48.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.48.0)
|
||||
|
||||
[1.38.0]
|
||||
* Update Synapse to 1.49.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.49.0)
|
||||
|
||||
[1.38.1]
|
||||
* Update Synapse to 1.49.2
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.49.2)
|
||||
|
||||
[1.38.2]
|
||||
* Update Synapse to 1.50.1
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.50.1)
|
||||
|
||||
[1.38.3]
|
||||
* Update Synapse to 1.50.2
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.50.2)
|
||||
* Fix a bug introduced in Synapse 1.40.0 that caused Synapse to fail to process incoming federation traffic after handling a large amount of events in a v1 room. (#11806)
|
||||
|
||||
[1.38.4]
|
||||
* Update Synapse to 1.51.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.51.0)
|
||||
|
||||
[1.38.5]
|
||||
* Update Synapse to 1.52.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.52.0)
|
||||
* Remove account data (including client config, push rules and ignored users) upon user deactivation. (#11621, #11788, #11789)
|
||||
* Add an admin API to reset connection timeouts for remote server. (#11639)
|
||||
* Add an admin API to get a list of rooms that federate with a given remote homeserver. (#11658)
|
||||
* Add a config flag to inhibit M_USER_IN_USE during registration. (#11743)
|
||||
* Add a module callback to set username at registration. (#11790)
|
||||
* Allow configuring a maximum file size as well as a list of allowed content types for avatars. (#11846)
|
||||
|
||||
[1.38.6]
|
||||
* Update Synapse to 1.53.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.53.0)
|
||||
* Add experimental support for sending to-device messages to application services, as specified by MSC2409. (#11215, #11966)
|
||||
* Add a background database update to purge account data for deactivated users. (#11655)
|
||||
* Experimental support for MSC3666: including bundled aggregations in server side search results. (#11837)
|
||||
* Enable cache time-based expiry by default. The expiry_time config flag has been superseded by expire_caches and cache_entry_ttl. (#11849)
|
||||
* Add a callback to allow modules to allow or forbid a 3PID (email address, phone number) from being associated to a local account. (#11854)
|
||||
* Stabilize support and remove unstable endpoints for MSC3231. Clients must switch to the stable identifier and endpoint. See the upgrade notes for more information. (#11867)
|
||||
* Allow modules to retrieve the current instance's server name and worker name. (#11868)
|
||||
* Use a dedicated configurable rate limiter for 3PID invites. (#11892)
|
||||
* Support the stable API endpoint for MSC3283: new settings in /capabilities endpoint. (#11933, #11989)
|
||||
* Support the dir parameter on the /relations endpoint, per MSC3715. (#11941)
|
||||
* Experimental implementation of MSC3706: extensions to /send_join to support reduced response size. (#11967)
|
||||
|
||||
[1.39.0]
|
||||
* Update Synapse to 1.54.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.54.0)
|
||||
* Fix a bug introduced in Synapse 1.54.0rc1 preventing the new module callbacks introduced in this release from being registered by modules. (#12141)
|
||||
* Fix a bug introduced in Synapse 1.54.0rc1 where runtime dependency version checks would mistakenly check development dependencies if they were present and would not accept pre-release versions of dependencies. (#12129, #12177)
|
||||
|
||||
[1.40.0]
|
||||
* Update Synapse to 1.55.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.55.0)
|
||||
* Add third-party rules callbacks check_can_shutdown_room and check_can_deactivate_user. (#12028)
|
||||
* Improve performance of logging in for large accounts. (#12132)
|
||||
* Support the stable identifiers from MSC3440: threads. (#12151)
|
||||
* Add a new Jinja2 template filter to extract the local part of an email address. (#12212)
|
||||
|
||||
[1.40.1]
|
||||
* Update Synapse to 1.55.2
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.55.2)
|
||||
|
||||
[1.41.0]
|
||||
* Update Synapse to 1.57.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.57.0)
|
||||
|
||||
[1.41.1]
|
||||
* Update Synapse to 1.57.1
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.57.1)
|
||||
|
||||
[1.42.0]
|
||||
* Update Synapse to 1.58.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.58.0)
|
||||
* Implement MSC3383 for including the destination in server-to-server authentication headers. Contributed by @Bubu and @jcgruenhage for Famedly. (#11398)
|
||||
* Enable processing of device list updates asynchronously. (#12365, #12465)
|
||||
* Implement MSC2815 to allow room moderators to view redacted event content. Contributed by @tulir @ Beeper. (#12427)
|
||||
|
||||
[1.43.0]
|
||||
* Update Synapse to 1.59.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.59.0)
|
||||
|
||||
[1.43.1]
|
||||
* Update Synapse to 1.59.1
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.59.1)
|
||||
|
||||
[1.44.0]
|
||||
* Update Synapse to 1.60.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.60.0)
|
||||
* Add an option allowing users to use their password to reauthenticate for privileged actions even though password login is disabled. (#12883)
|
||||
* Explicitly close ijson coroutines once we are done with them, instead of leaving the garbage collector to close them. (#12875)
|
||||
* Improve URL previews by not including the content of media tags in the generated description. (#12887)
|
||||
|
||||
[1.45.0]
|
||||
* Update Synapse to 1.61.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.61.0)
|
||||
* Add new media_retention options to the homeserver config for routinely cleaning up non-recently accessed media. (#12732, #12972, #12977)
|
||||
* Experimental support for MSC3772: Push rule for mutually related events. (#12740, #12859)
|
||||
* Update to the check_event_for_spam module callback: Deprecate the current callback signature, replace it with a new signature that is both less ambiguous (replacing booleans with explicit allow/block) and more powerful (ability to return explicit error codes). (#12808)
|
||||
* Add storage and module API methods to get monthly active users (and their corresponding appservices) within an optionally specified time range. (#12838, #12917)
|
||||
* Support the new error code ORG.MATRIX.MSC3823.USER_ACCOUNT_SUSPENDED from MSC3823. (#12845, #12923)
|
||||
* Add a configurable background job to delete stale devices. (#12855)
|
||||
* Improve URL previews for pages with empty elements. (#12951)
|
||||
* Allow updating a user's password using the admin API without logging out their devices. Contributed by @jcgruenhage. (#12952)
|
||||
|
||||
[1.45.1]
|
||||
* Add s3 storage provider module
|
||||
|
||||
[1.45.2]
|
||||
* Update Synapse to 1.61.1
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.61.1)
|
||||
* Linkify GHSA commit
|
||||
|
||||
[1.46.0]
|
||||
* Update Synapse to 1.62.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.62.0)
|
||||
|
||||
[1.47.0]
|
||||
* Update Synapse to 1.63.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.63.0)
|
||||
|
||||
[1.47.1]
|
||||
* Update Synapse to 1.63.1
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.63.1)
|
||||
* Fix a bug introduced in Synapse 1.63.0 where push actions were incorrectly calculated for appservice users. This caused performance issues on servers with large numbers of appservices. (#13332)
|
||||
|
||||
[1.48.0]
|
||||
* Update Synapse to 1.64.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.64.0)
|
||||
|
||||
[1.49.0]
|
||||
* Update Synapse to 1.65.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.65.0)
|
||||
* Add support for stable prefixes for MSC2285 (private read receipts). (#13273)
|
||||
* Add new unstable error codes ORG.MATRIX.MSC3848.ALREADY_JOINED, ORG.MATRIX.MSC3848.NOT_JOINED, and ORG.MATRIX.MSC3848.INSUFFICIENT_POWER described in MSC3848. (#13343)
|
||||
* Use stable prefixes for MSC3827. (#13370)
|
||||
* Add a new module API method to translate a room alias into a room ID. (#13428)
|
||||
* Add a new module API method to create a room. (#13429)
|
||||
|
||||
[1.49.1]
|
||||
* Add oidc module
|
||||
|
||||
[1.49.2]
|
||||
* Update Synapse to 1.66.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.66.0)
|
||||
|
||||
[1.50.0]
|
||||
* Update Synapse to 1.67.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.67.0)
|
||||
* Support setting the registration shared secret in a file, via a new `registration_shared_secret_path` configuration option.
|
||||
* Change the default startup behaviour so that any missing "additional" configuration files (signing key, etc) are generated automatically.
|
||||
* Improve performance of sending messages in rooms with thousands of local users.
|
||||
|
||||
[1.51.0]
|
||||
* Update Synapse to 1.68.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.68.0)
|
||||
* Fix packaging to include Cargo.lock in sdist. (#13909)
|
||||
* Fix building from packaged sdist. Broken in v1.68.0rc1. (#13866)
|
||||
* Fix the release script not publishing binary wheels. (#13850)
|
||||
* Lower minimum supported rustc version to 1.58.1. (#13857)
|
||||
* Lock Rust dependencies' versions. (#13858)
|
||||
* Keep track of when we fail to process a pulled event over federation so we can intelligently back off in the future. (#13589, #13814)
|
||||
* Add an admin API endpoint to fetch messages within a particular window of time. (#13672)
|
||||
* Add an admin API endpoint to find a user based on their external ID in an auth provider. (#13810)
|
||||
* Cancel the processing of key query requests when they time out. (#13680)
|
||||
* Improve validation of request bodies for the following client-server API endpoints: /account/3pid/msisdn/requestToken, /org.matrix.msc3720/account_status, /account/3pid/add, /account/3pid/bind, /account/3pid/delete and /account/3pid/unbind. (#13687, #13736)
|
||||
* Document the timestamp when a user accepts the consent, if consent tracking is used. (#13741)
|
||||
* Add a listeners[x].request_id_header configuration option to specify which request header to extract and use as the request ID in order to correlate requests from a reverse proxy. (#13801)
|
||||
* Fix a bug introduced in Synapse 1.41.0 where the /hierarchy API returned non-standard information (a room_id field under each entry in children_state). (#13506)
|
||||
* Fix a long-standing bug where previously rejected events could end up in room state because they pass auth checks given the current state of the room. (#13723)
|
||||
* Fix a long-standing bug where Synapse fails to start if a signing key file contains an empty line. (#13738)
|
||||
* Fix a long-standing bug where Synapse would fail to handle malformed user IDs or room aliases gracefully in certain cases. (#13746)
|
||||
* Fix a long-standing bug where device lists would remain cached when remote users left and rejoined the last room shared with the local homeserver. (#13749, #13826)
|
||||
* Fix a long-standing bug that could cause stale caches in some rare cases on the first startup of Synapse with replication. (#13766)
|
||||
* Fix a long-standing spec compliance bug where Synapse would accept a trailing slash on the end of /get_missing_events federation requests. (#13789)
|
||||
* Delete associated data from event_failed_pull_attempts, insertion_events, insertion_event_extremities, insertion_event_extremities, insertion_event_extremities when purging the room. (#13825)
|
||||
|
||||
[1.52.0]
|
||||
* Update Synapse to 1.69.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.69.0)
|
||||
* Fix poor performance of the event_push_backfill_thread_id background update, which was introduced in Synapse 1.68.0rc1. (#14172, #14181)
|
||||
* Fix an issue with Docker images causing the Rust dependencies to not be pinned correctly. Introduced in v1.68.0 (#14129)
|
||||
* Fix a bug introduced in Synapse 1.69.0rc1 which would cause registration replication requests to fail if the worker sending the request is not running Synapse 1.69. (#14135)
|
||||
* Fix error in background update when rotating existing notifications. Introduced in v1.69.0rc2. (#14138)
|
||||
* Allow application services to set the origin_server_ts of a state event by providing the query parameter ts in PUT /_matrix/client/r0/rooms/{roomId}/state/{eventType}/{stateKey}, per MSC3316. Contributed by @lukasdenk. (#11866)
|
||||
* Allow server admins to require a manual approval process before new accounts can be used (using MSC3866). (#13556)
|
||||
* Exponentially backoff from backfilling the same event over and over. (#13635, #13936)
|
||||
* Add cache invalidation across workers to module API. (#13667, #13947)
|
||||
* Experimental implementation of MSC3882 to allow an existing device/session to generate a login token for use on a new device/session. (#13722, #13868)
|
||||
* Experimental support for thread-specific receipts (MSC3771). (#13782, #13893, #13932, #13937, #13939)
|
||||
* Add experimental support for MSC3881: Remotely toggle push notifications for another client. (#13799, #13831, #13860)
|
||||
* Keep track when an event pulled over federation fails its signature check so we can intelligently back-off in the future. (#13815)
|
||||
* Improve validation for the unspecced, internal-only _matrix/client/unstable/add_threepid/msisdn/submit_token endpoint. (#13832)
|
||||
* Faster remote room joins: record when we first partial-join to a room. (#13892)
|
||||
* Support a dir parameter on the /relations endpoint per MSC3715. (#13920)
|
||||
* Ask mail servers receiving emails from Synapse to not send automatic replies (e.g. out-of-office responses). (#13957)
|
||||
* Send push notifications for invites received over federation. (#13719, #14014)
|
||||
* Fix a long-standing bug where typing events would be accepted from remote servers not present in a room. Also fix a bug where incoming typing events would cause other incoming events to get stuck during a fast join. (#13830)
|
||||
* Fix a bug introduced in Synapse v1.53.0 where the experimental implementation of MSC3715 would give incorrect results when paginating forward. (#13840)
|
||||
* Fix access token leak to logs from proxy agent. (#13855)
|
||||
* Fix have_seen_event cache not being invalidated after we persist an event which causes inefficiency effects like extra /state federation calls. (#13863)
|
||||
* Faster room joins: Fix a bug introduced in 1.66.0 where an error would be logged when syncing after joining a room. (#13872)
|
||||
* Fix a bug introduced in 1.66.0 where some required fields in the pushrules sent to clients were not present anymore. Contributed by Nico. (#13904)
|
||||
* Fix packaging to include Cargo.lock in sdist. (#13909)
|
||||
* Fix a long-standing bug where device updates could cause delays sending out to-device messages over federation. (#13922)
|
||||
* Fix a bug introduced in v1.68.0 where Synapse would require setuptools_rust at runtime, even though the package is only required at build time. (#13952)
|
||||
* Fix a long-standing bug where POST /_matrix/client/v3/keys/query requests could result in excessively large SQL queries. (#13956)
|
||||
* Fix a performance regression in the get_users_in_room database query. Introduced in v1.67.0. (#13972)
|
||||
* Fix a bug introduced in v1.68.0 bug where Rust extension wasn't built in release mode when using poetry install. (#14009)
|
||||
* Do not return an unspecified original_event field when using the stable /relations endpoint. Introduced in Synapse v1.57.0. (#14025)
|
||||
* Correctly handle a race with device lists when a remote user leaves during a partial join. (#13885)
|
||||
* Correctly handle sending local device list updates to remote servers during a partial join. (#13934)
|
||||
|
||||
[1.53.0]
|
||||
* Update Synapse to 1.70.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.70.0)
|
||||
* Support for [MSC3856](https://github.com/matrix-org/matrix-spec-proposals/pull/3856): threads list API. ([\#13394](https://github.com/matrix-org/synapse/issues/13394), [\#14171](https://github.com/matrix-org/synapse/issues/14171), [\#14175](https://github.com/matrix-org/synapse/issues/14175))
|
||||
* Support for thread-specific notifications & receipts ([MSC3771](https://github.com/matrix-org/matrix-spec-proposals/pull/3771) and [MSC3773](https://github.com/matrix-org/matrix-spec-proposals/pull/3773)). ([\#13776](https://github.com/matrix-org/synapse/issues/13776), [\#13824](https://github.com/matrix-org/synapse/issues/13824), [\#13877](https://github.com/matrix-org/synapse/issues/13877), [\#13878](https://github.com/matrix-org/synapse/issues/13878), [\#14050](https://github.com/matrix-org/synapse/issues/14050), [\#14140](https://github.com/matrix-org/synapse/issues/14140), [\#14159](https://github.com/matrix-org/synapse/issues/14159), [\#14163](https://github.com/matrix-org/synapse/issues/14163), [\#14174](https://github.com/matrix-org/synapse/issues/14174), [\#14222](https://github.com/matrix-org/synapse/issues/14222))
|
||||
* Stop fetching missing `prev_events` after we already know their signature is invalid. ([\#13816](https://github.com/matrix-org/synapse/issues/13816))
|
||||
* Send application service access tokens as a header (and query parameter). Implements [MSC2832](https://github.com/matrix-org/matrix-spec-proposals/pull/2832). ([\#13996](https://github.com/matrix-org/synapse/issues/13996))
|
||||
* Ignore server ACL changes when generating pushes. Implements [MSC3786](https://github.com/matrix-org/matrix-spec-proposals/pull/3786). ([\#13997](https://github.com/matrix-org/synapse/issues/13997))
|
||||
* Experimental support for redirecting to an implementation of a [MSC3886](https://github.com/matrix-org/matrix-spec-proposals/pull/3886) HTTP rendezvous service. ([\#14018](https://github.com/matrix-org/synapse/issues/14018))
|
||||
* The `/relations` endpoint can now be used on workers. ([\#14028](https://github.com/matrix-org/synapse/issues/14028))
|
||||
* Advertise support for Matrix 1.3 and 1.4 on `/_matrix/client/versions`. ([\#14032](https://github.com/matrix-org/synapse/issues/14032), [\#14184](https://github.com/matrix-org/synapse/issues/14184))
|
||||
* Improve validation of request bodies for the [Device Management](https://spec.matrix.org/v1.4/client-server-api/#device-management) and [MSC2697 Device Dehyrdation](https://github.com/matrix-org/matrix-spec-proposals/pull/2697) client-server API endpoints. ([\#14054](https://github.com/matrix-org/synapse/issues/14054))
|
||||
* Experimental support for [MSC3874](https://github.com/matrix-org/matrix-spec-proposals/pull/3874): Filtering threads from the `/messages` endpoint. ([\#14148](https://github.com/matrix-org/synapse/issues/14148))
|
||||
* Improve the validation of the following PUT endpoints: [`/directory/room/{roomAlias}`](https://spec.matrix.org/v1.4/client-server-api/#put_matrixclientv3directoryroomroomalias), [`/directory/list/room/{roomId}`](https://spec.matrix.org/v1.4/client-server-api/#put_matrixclientv3directorylistroomroomid) and [`/directory/list/appservice/{networkId}/{roomId}`](https://spec.matrix.org/v1.4/application-service-api/#put_matrixclientv3directorylistappservicenetworkidroomid). ([\#14179](https://github.com/matrix-org/synapse/issues/14179))
|
||||
* Build and publish binary wheels for `aarch64` platforms. ([\#14212](https://github.com/matrix-org/synapse/issues/14212))
|
||||
|
||||
[1.53.1]
|
||||
* Update Synapse to 1.70.1
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.70.1)
|
||||
* Fix a bug introduced in Synapse 1.70.0rc1 where the access tokens sent to application services as headers were malformed. Application services which were obtaining access tokens from query parameters were not affected. (#14301)
|
||||
* Fix room creation being rate limited too aggressively since Synapse v1.69.0. (#14314)
|
||||
|
||||
[1.54.0]
|
||||
* Update Synapse to 1.71.0
|
||||
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.71.0)
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
"title": "Matrix Synapse",
|
||||
"author": "Matrix synapse authors",
|
||||
"description": "file://DESCRIPTION.md",
|
||||
"changelog": "file://CHANGELOG",
|
||||
"changelog": "file://CHANGELOG.md",
|
||||
"tagline": "Secure & decentralized communication",
|
||||
"version": "1.25.0",
|
||||
"version": "1.54.0",
|
||||
"upstreamVersion": "1.71.0",
|
||||
"healthCheckPath": "/",
|
||||
"httpPort": 8008,
|
||||
"memoryLimit": 536870912,
|
||||
@@ -13,7 +14,7 @@
|
||||
"localstorage": {},
|
||||
"ldap": {},
|
||||
"postgresql": {},
|
||||
"sendmail": {},
|
||||
"sendmail": { "supportsDisplayName": true },
|
||||
"turn": {}
|
||||
},
|
||||
"manifestVersion": 2,
|
||||
@@ -28,9 +29,8 @@
|
||||
"https://screenshots.cloudron.io/org.matrix.synapse/2.png",
|
||||
"https://screenshots.cloudron.io/org.matrix.synapse/3.png"
|
||||
],
|
||||
"changelog": "file://CHANGELOG",
|
||||
"postInstallMessage": "file://POSTINSTALL.md",
|
||||
"minBoxVersion": "5.3.0",
|
||||
"minBoxVersion": "7.2.0",
|
||||
"forumUrl": "https://forum.cloudron.io/category/50/matrix-synapse-riot",
|
||||
"documentationUrl": "https://docs.cloudron.io/apps/synapse/",
|
||||
"optionalSso": true
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
This app packages Synapse <upstream>1.35.0</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.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
FROM cloudron/base:3.0.0@sha256:455c70428723e3a823198c57472785437eb6eab082e79b3ff04ea584faf46e92
|
||||
|
||||
FROM cloudron/base:3.2.0@sha256:ba1d566164a67c266782545ea9809dc611c4152e27686fd14060332dd88263ea
|
||||
|
||||
RUN mkdir -p /app/pkg
|
||||
|
||||
WORKDIR /app/code
|
||||
@@ -9,13 +9,13 @@ RUN virtualenv -p python3 /app/code/env
|
||||
ENV VIRTUAL_ENV=/app/code/env
|
||||
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
||||
|
||||
ARG VERSION=v1.35.0
|
||||
ARG VERSION=v1.71.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
|
||||
pip install matrix-synapse==${VERSION} psycopg2-binary python-ldap matrix-synapse-ldap3 lxml publicsuffix2 git+https://github.com/matrix-org/synapse-s3-storage-provider.git@ffd3fa477321608e57d27644197e721965e0e858 matrix-synapse[oidc]
|
||||
|
||||
RUN ln -sf /app/data/index.html /app/code/env/lib/python3.8/site-packages/synapse/static/index.html
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
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.
|
||||
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.
|
||||
|
||||
|
||||
@@ -72,6 +72,7 @@ federation_ip_range_blacklist:
|
||||
- 'fc00::/7'
|
||||
|
||||
enable_registration: false
|
||||
enable_registration_without_verification: true
|
||||
registration_shared_secret: "somesecret"
|
||||
allow_guest_access: false
|
||||
|
||||
|
||||
15
start.sh
15
start.sh
@@ -22,7 +22,10 @@ if [[ ! -f /app/data/configs/homeserver.yaml ]]; then
|
||||
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 eval -i ".log_config=\"/app/data/configs/log.config\"" /app/data/configs/homeserver.yaml
|
||||
yq eval -i ".handlers.file.filename=\"/run/synapse/homeserver.log\"" /app/data/configs/log.config
|
||||
|
||||
# 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
|
||||
|
||||
@@ -35,9 +38,15 @@ if [[ ! -f /app/data/configs/homeserver.yaml ]]; then
|
||||
if [[ -z "${CLOUDRON_LDAP_SERVER:-}" ]]; then
|
||||
yq eval -i ".enable_registration=true" /app/data/configs/homeserver.yaml
|
||||
yq eval -i ".password_config.pepper=\"$(pwgen -1s 12)\"" /app/data/configs/homeserver.yaml
|
||||
# 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
|
||||
|
||||
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"
|
||||
@@ -54,7 +63,7 @@ yq eval -i ".email.smtp_host=\"${CLOUDRON_MAIL_SMTP_SERVER}\"" /app/data/configs
|
||||
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=\"%(app)s <${CLOUDRON_MAIL_FROM}>\"" /app/data/configs/homeserver.yaml
|
||||
yq eval -i ".email.notif_from=\"${CLOUDRON_MAIL_FROM_DISPLAY_NAME:-Matrix} <${CLOUDRON_MAIL_FROM}>\"" /app/data/configs/homeserver.yaml
|
||||
|
||||
# ldap
|
||||
if [[ -n "${CLOUDRON_LDAP_SERVER:-}" ]]; then
|
||||
@@ -67,6 +76,8 @@ if [[ -n "${CLOUDRON_LDAP_SERVER:-}" ]]; then
|
||||
|
||||
else
|
||||
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
|
||||
|
||||
# turn (https://github.com/matrix-org/synapse/blob/master/docs/turn-howto.md#synapse-setup)
|
||||
|
||||
2310
test/package-lock.json
generated
2310
test/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,11 +9,11 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"chromedriver": "^90.0.0",
|
||||
"chromedriver": "^107.0.3",
|
||||
"expect.js": "^0.3.1",
|
||||
"mocha": "^8.4.0",
|
||||
"mocha": "^10.1.0",
|
||||
"selenium-server-standalone-jar": "^3.141.59",
|
||||
"selenium-webdriver": "^3.6.0",
|
||||
"superagent": "^6.1.0"
|
||||
"selenium-webdriver": "^4.6.0",
|
||||
"superagent": "^8.0.3"
|
||||
}
|
||||
}
|
||||
|
||||
146
test/test.js
146
test/test.js
@@ -1,11 +1,11 @@
|
||||
#!/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 describe */
|
||||
/* global before */
|
||||
/* global after */
|
||||
/* global it */
|
||||
/* global xit */
|
||||
|
||||
'use strict';
|
||||
|
||||
@@ -15,47 +15,42 @@ var execSync = require('child_process').execSync,
|
||||
expect = require('expect.js'),
|
||||
path = require('path'),
|
||||
superagent = require('superagent'),
|
||||
webdriver = require('selenium-webdriver');
|
||||
|
||||
var by = require('selenium-webdriver').By,
|
||||
until = require('selenium-webdriver').until,
|
||||
Key = require('selenium-webdriver').Key;
|
||||
{ Builder, By, Key, until } = require('selenium-webdriver'),
|
||||
{ Options } = require('selenium-webdriver/chrome');
|
||||
|
||||
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;
|
||||
const LOCATION = 'test';
|
||||
const TEST_TIMEOUT = 10000;
|
||||
const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
|
||||
|
||||
const username = process.env.USERNAME;
|
||||
const password = process.env.PASSWORD;
|
||||
|
||||
var app, browser;
|
||||
var token, roomId;
|
||||
|
||||
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'));
|
||||
before(function () {
|
||||
if (!process.env.USERNAME) throw new Error('USERNAME env var not set');
|
||||
if (!process.env.PASSWORD) throw new Error('PASSWORD env var not set');
|
||||
|
||||
var seleniumJar= require('selenium-server-standalone-jar');
|
||||
var SeleniumServer = require('selenium-webdriver/remote').SeleniumServer;
|
||||
server = new SeleniumServer(seleniumJar.path, { port: 4444 });
|
||||
server.start();
|
||||
|
||||
done();
|
||||
browser = new Builder().forBrowser('chrome').setChromeOptions(new Options().windowSize({ width: 1280, height: 1024 })).build();
|
||||
});
|
||||
|
||||
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();
|
||||
});
|
||||
function getAppInfo() {
|
||||
var 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');
|
||||
}
|
||||
|
||||
async function checkLandingPage() {
|
||||
await browser.get(`https://${app.fqdn}`);
|
||||
await browser.wait(until.elementLocated(By.xpath('//h1[contains(text(),"Synapse is running")]')), TEST_TIMEOUT);
|
||||
}
|
||||
|
||||
// https://matrix.org/docs/spec/client_server/latest#user-interactive-api-in-the-rest-api
|
||||
@@ -82,7 +77,7 @@ describe('Application life cycle test', function () {
|
||||
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);
|
||||
console.log('registered user with id', result.body.user_id);
|
||||
|
||||
done();
|
||||
});
|
||||
@@ -141,22 +136,12 @@ describe('Application life cycle test', function () {
|
||||
});
|
||||
}
|
||||
|
||||
xit('build app', function () {
|
||||
execSync('cloudron build', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
|
||||
});
|
||||
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('install app (no sso)', function () { execSync('cloudron install --no-sso --location ' + LOCATION, EXEC_ARGS); });
|
||||
|
||||
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('can get app information', getAppInfo);
|
||||
|
||||
it('check landing page', checkLandingPage);
|
||||
it('can register new user', registerUser);
|
||||
@@ -165,22 +150,12 @@ describe('Application life cycle test', function () {
|
||||
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('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', function () { execSync('cloudron install --location ' + LOCATION, EXEC_ARGS); });
|
||||
|
||||
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('can get app information', getAppInfo);
|
||||
|
||||
it('check landing page', checkLandingPage);
|
||||
it('can login', checkLogin);
|
||||
@@ -188,28 +163,22 @@ describe('Application life cycle test', function () {
|
||||
it('create room', createRoom);
|
||||
it('check room', checkRoom);
|
||||
|
||||
it('can restart app', function (done) {
|
||||
execSync('cloudron restart');
|
||||
done();
|
||||
});
|
||||
it('can restart app', function () { execSync('cloudron restart'); });
|
||||
|
||||
it('check landing page', checkLandingPage);
|
||||
it('check room', checkRoom);
|
||||
|
||||
it('backup app', function () {
|
||||
execSync('cloudron backup create --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
|
||||
});
|
||||
it('backup app', function () { execSync('cloudron backup create --app ' + app.id, EXEC_ARGS); });
|
||||
|
||||
it('check landing page', checkLandingPage);
|
||||
it('check room', checkRoom);
|
||||
|
||||
it('restore app', function () {
|
||||
const backups = JSON.parse(execSync('cloudron backup list --raw'));
|
||||
execSync('cloudron uninstall --app ' + app.id, { 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' });
|
||||
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);
|
||||
@@ -217,40 +186,29 @@ describe('Application life cycle test', function () {
|
||||
|
||||
it('move to different location', 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');
|
||||
execSync('cloudron configure --location ' + LOCATION + '2', EXEC_ARGS);
|
||||
getAppInfo();
|
||||
});
|
||||
|
||||
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 app', function () { execSync('cloudron uninstall --app ' + app.id, 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('can install app', function () { execSync('cloudron install --appstore-id org.matrix.synapse --location ' + LOCATION, EXEC_ARGS); });
|
||||
|
||||
it('can get app information', getAppInfo);
|
||||
|
||||
it('check landing page', checkLandingPage);
|
||||
it('can login', checkLogin);
|
||||
it('create room', createRoom);
|
||||
it('check room', checkRoom);
|
||||
|
||||
it('can update', function () {
|
||||
execSync('cloudron update --app ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
|
||||
});
|
||||
it('can update', function () { execSync('cloudron update --app ' + LOCATION, 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 app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user