Enable Matrix message thread support.

This change enables experimental message threading support and upgrades
Synapse and Element to their latest stable versions.

Change-Id: I68334982168ffdac98a1602a157be727b04e58d6
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1286
Reviewed-by: informatic <informatic@hackerspace.pl>
Reviewed-by: q3k <q3k@hackerspace.pl>
diff --git a/app/matrix/lib/matrix-ng.libsonnet b/app/matrix/lib/matrix-ng.libsonnet
index 20c33e8..b17dd9d 100644
--- a/app/matrix/lib/matrix-ng.libsonnet
+++ b/app/matrix/lib/matrix-ng.libsonnet
@@ -108,8 +108,8 @@
         storageClassName: "waw-hdd-redundant-3",
 
         images: {
-            synapse: "matrixdotorg/synapse:v1.42.0",
-            riot: "vectorim/element-web:v1.8.5",
+            synapse: "matrixdotorg/synapse:v1.56.0",
+            riot: "vectorim/element-web:v1.10.10",
             casProxy: "registry.k0.hswaw.net/q3k/oauth2-cas-proxy:0.1.4",
             appserviceIRC: "matrixdotorg/matrix-appservice-irc:release-v0.29.0",
             appserviceTelegram: "dock.mau.dev/tulir/mautrix-telegram@sha256:c6e25cb57e1b67027069e8dc2627338df35d156315c004a6f2b34b6aeaa79f77",
diff --git a/app/matrix/lib/synapse.libsonnet b/app/matrix/lib/synapse.libsonnet
index 0bd4b74..3412715 100644
--- a/app/matrix/lib/synapse.libsonnet
+++ b/app/matrix/lib/synapse.libsonnet
@@ -252,32 +252,10 @@
         # Following paths can be handled by generic workers.
         # See: https://github.com/matrix-org/synapse/blob/master/docs/workers.md
         paths:: [
-            "/_matrix/client/(v2_alpha|r0)/sync",
-            "/_matrix/client/(api/v1|v2_alpha|r0)/events",
-            "/_matrix/client/(api/v1|r0)/initialSync",
-            "/_matrix/client/(api/v1|r0)/rooms/[^/]+/initialSync",
-            "/_matrix/client/(api/v1|r0|unstable)/publicRooms",
-            "/_matrix/client/(api/v1|r0|unstable)/rooms/.*/joined_members",
-            "/_matrix/client/(api/v1|r0|unstable)/rooms/.*/context/.*",
-            "/_matrix/client/(api/v1|r0|unstable)/rooms/.*/members",
-            "/_matrix/client/(api/v1|r0|unstable)/rooms/.*/state",
-            "/_matrix/client/(api/v1|r0|unstable)/account/3pid",
-            "/_matrix/client/(api/v1|r0|unstable)/keys/query",
-            "/_matrix/client/(api/v1|r0|unstable)/keys/changes",
-            "/_matrix/client/versions",
-            "/_matrix/client/(api/v1|r0|unstable)/voip/turnServer",
-            "/_matrix/client/(api/v1|r0|unstable)/joined_groups",
-            "/_matrix/client/(api/v1|r0|unstable)/publicised_groups",
-            "/_matrix/client/(api/v1|r0|unstable)/publicised_groups/",
-            # Blocked by https://github.com/matrix-org/synapse/issues/8966
-            # "/_matrix/client/(api/v1|r0|unstable)/login",
-            # "/_matrix/client/(r0|unstable)/register",
-            # "/_matrix/client/(r0|unstable)/auth/.*/fallback/web",
-            "/_matrix/client/(api/v1|r0|unstable)/rooms/.*/send",
-            "/_matrix/client/(api/v1|r0|unstable)/rooms/.*/state/",
-            "/_matrix/client/(api/v1|r0|unstable)/rooms/.*/(join|invite|leave|ban|unban|kick)",
-            "/_matrix/client/(api/v1|r0|unstable)/join/",
-            "/_matrix/client/(api/v1|r0|unstable)/profile/",
+            "/_matrix/client/(r0|v3)/sync",
+            "/_matrix/client/(api/v1|r0|v3)/events",
+            "/_matrix/client/(api/v1|r0|v3)/initialSync",
+            "/_matrix/client/(api/v1|r0|v3)/rooms/[^/]+/initialSync",
             "/_matrix/federation/v1/event/",
             "/_matrix/federation/v1/state/",
             "/_matrix/federation/v1/state_ids/",
@@ -287,19 +265,53 @@
             "/_matrix/federation/v1/query/",
             "/_matrix/federation/v1/make_join/",
             "/_matrix/federation/v1/make_leave/",
-            "/_matrix/federation/v1/send_join/",
-            "/_matrix/federation/v2/send_join/",
-            "/_matrix/federation/v1/send_leave/",
-            "/_matrix/federation/v2/send_leave/",
-            "/_matrix/federation/v1/invite/",
-            "/_matrix/federation/v2/invite/",
-            "/_matrix/federation/v1/query_auth/",
+            "/_matrix/federation/(v1|v2)/send_join/",
+            "/_matrix/federation/(v1|v2)/send_leave/",
+            "/_matrix/federation/(v1|v2)/invite/",
             "/_matrix/federation/v1/event_auth/",
             "/_matrix/federation/v1/exchange_third_party_invite/",
             "/_matrix/federation/v1/user/devices/",
             "/_matrix/federation/v1/get_groups_publicised",
             "/_matrix/key/v2/query",
+            "/_matrix/federation/(v1|unstable/org.matrix.msc2946)/hierarchy/",
             "/_matrix/federation/v1/send/",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/createRoom",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/publicRooms",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/joined_members",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/context/.*",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/members",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state",
+            "/_matrix/client/(v1|unstable/org.matrix.msc2946)/rooms/.*/hierarchy",
+            "/_matrix/client/unstable/im.nheko.summary/rooms/.*/summary",
+            "/_matrix/client/(r0|v3|unstable)/account/3pid",
+            "/_matrix/client/(r0|v3|unstable)/devices",
+            "/_matrix/client/versions",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/voip/turnServer",
+            "/_matrix/client/(r0|v3|unstable)/joined_groups",
+            "/_matrix/client/(r0|v3|unstable)/publicised_groups",
+            "/_matrix/client/(r0|v3|unstable)/publicised_groups/",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/event/",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/joined_rooms",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/search",
+            "/_matrix/client/(r0|v3|unstable)/keys/query",
+            "/_matrix/client/(r0|v3|unstable)/keys/changes",
+            "/_matrix/client/(r0|v3|unstable)/keys/claim",
+            "/_matrix/client/(r0|v3|unstable)/room_keys/",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/login",
+            "/_matrix/client/(r0|v3|unstable)/register",
+            "/_matrix/client/v1/register/m.login.registration_token/validity",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/redact",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/send",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state/",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/(join|invite|leave|ban|unban|kick)",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/join/",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/profile/",
+            "/_matrix/client/(r0|v3|unstable)/sendToDevice/",
+            "/_matrix/client/(r0|v3|unstable)/.*/tags",
+            "/_matrix/client/(r0|v3|unstable)/.*/account_data",
+            "/_matrix/client/(r0|v3|unstable)/rooms/.*/receipt",
+            "/_matrix/client/(r0|v3|unstable)/rooms/.*/read_markers",
+            "/_matrix/client/(api/v1|r0|v3|unstable)/presence/",
         ],
     },
 
diff --git a/app/matrix/lib/synapse/homeserver-ng.yaml b/app/matrix/lib/synapse/homeserver-ng.yaml
index 7d0a98a..3e11a1e 100644
--- a/app/matrix/lib/synapse/homeserver-ng.yaml
+++ b/app/matrix/lib/synapse/homeserver-ng.yaml
@@ -130,3 +130,8 @@
 # Allow federated public rooms browsing

 allow_public_rooms_without_auth: true

 allow_public_rooms_over_federation: true

+

+## Experimental Features ##

+experimental_features:

+  # Message threading support

+  msc3440_enabled: true

diff --git a/app/matrix/lib/synapse/homeserver-secrets.yaml b/app/matrix/lib/synapse/homeserver-secrets.yaml
index 1f6221f..c7af6f3 100644
--- a/app/matrix/lib/synapse/homeserver-secrets.yaml
+++ b/app/matrix/lib/synapse/homeserver-secrets.yaml
@@ -6,6 +6,7 @@
 ## Database ##
 database:
   name: "psycopg2"
+  allow_unsafe_locale: true
   args:
     user: "synapse"
     password: "$(POSTGRES_PASSWORD)"
diff --git a/app/matrix/lib/synapse/homeserver.yaml b/app/matrix/lib/synapse/homeserver.yaml
index 05c4d00..3f05dc8 100644
--- a/app/matrix/lib/synapse/homeserver.yaml
+++ b/app/matrix/lib/synapse/homeserver.yaml
@@ -137,3 +137,7 @@
 password_config:

    enabled: false

 

+## Experimental Features ##

+experimental_features:

+  # Message threading support

+  msc3440_enabled: true