forked from quentin/quentin.dufour.io
New post about matrix migration
This commit is contained in:
parent
ffd1358f1f
commit
9d5708f0e5
2 changed files with 66 additions and 3 deletions
|
@ -29,7 +29,6 @@ GEM
|
||||||
rouge (~> 3.0)
|
rouge (~> 3.0)
|
||||||
safe_yaml (~> 1.0)
|
safe_yaml (~> 1.0)
|
||||||
terminal-table (~> 2.0)
|
terminal-table (~> 2.0)
|
||||||
jekyll-paginate (1.1.0)
|
|
||||||
jekyll-sass-converter (2.1.0)
|
jekyll-sass-converter (2.1.0)
|
||||||
sassc (> 2.0.1, < 3.0)
|
sassc (> 2.0.1, < 3.0)
|
||||||
jekyll-sitemap (1.4.0)
|
jekyll-sitemap (1.4.0)
|
||||||
|
@ -68,7 +67,6 @@ PLATFORMS
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
jekyll (>= 4.2.0)
|
jekyll (>= 4.2.0)
|
||||||
jekyll-paginate
|
|
||||||
jekyll-sitemap
|
jekyll-sitemap
|
||||||
racc
|
racc
|
||||||
redcarpet
|
redcarpet
|
||||||
|
@ -76,4 +74,4 @@ DEPENDENCIES
|
||||||
webrick (~> 1.7)
|
webrick (~> 1.7)
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.2.15
|
2.2.33
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
---
|
||||||
|
layout: post
|
||||||
|
slug: matrix-migrate-encrypted-room-to-a-clear-text-one
|
||||||
|
status: published
|
||||||
|
sitemap: true
|
||||||
|
title: "Matrix: Migrate an encrypted room to a clear text one"
|
||||||
|
description: Matrix E2EE does not work well with public roooms
|
||||||
|
category: operation
|
||||||
|
tags:
|
||||||
|
---
|
||||||
|
|
||||||
|
Some time ago, the Matrix team was pushing hard E2EE and activated for all created rooms.
|
||||||
|
Believing encryption was the future, we kept this default for all the rooms we created.
|
||||||
|
But now that one of our room starts being popular, it appeares that E2EE does not work well with public rooms:
|
||||||
|
1. the history is not available to newcomers
|
||||||
|
2. we can not search the history of an encrypted room (or at least, I never managed to make it work even with the desktop app)
|
||||||
|
3. notifications options are limited on mobile
|
||||||
|
4. scaling issues
|
||||||
|
5. and so on.
|
||||||
|
|
||||||
|
It seems that Matrix developpers are aware of these problems as now, if you create a "public room", you will not be asked to encrypt it at all.
|
||||||
|
But for existing rooms, we have a problem: for security reasons, you can't disable encryption in a room.
|
||||||
|
Our only option is to create a new room and to point the old one to the new one.
|
||||||
|
Thankfully, Matrix has a feature named **Tombstone** that helps redirecting users from one room to another.
|
||||||
|
This feature is used for room version upgrade, but we can "abuse" it to redirect people to a completely different room.
|
||||||
|
|
||||||
|
First, you must create a new clear text room.
|
||||||
|
To provide the best experience to your users, take time to configure its picture, description, and so on.
|
||||||
|
Now, go to your old room, remove all its aliases to be able to set them on the new room.
|
||||||
|
You can set a new alias for your old room and send a message containing it on your new room, to "connect it with the old one", eg:
|
||||||
|
|
||||||
|
> Hi, this is the beginning of the history of this room. If you want to go back even more in time, check the old room: #myroom-old:example.tld
|
||||||
|
|
||||||
|
Finally, you need the identifier of your room. It starts with a `!`. For example: `!ARbIZeDKGloDOnjyyw:deuxfleurs.fr`.
|
||||||
|
Keep it somewhere accessible, and we are done configuring our new room.
|
||||||
|
|
||||||
|
We can now prepare the tombstone for the old room.
|
||||||
|
First, you should inform your users with a message, something like:
|
||||||
|
|
||||||
|
> Hi @room, we are migrating to a new room to fix some issues with this one.
|
||||||
|
You will not be able to post new messages here, please follow the provided redirection to join the new room.
|
||||||
|
Sorry for the inconvenience.
|
||||||
|
|
||||||
|
Now, open the developper tools in your old room by typing in the message box:
|
||||||
|
|
||||||
|
```
|
||||||
|
/devtools
|
||||||
|
```
|
||||||
|
|
||||||
|
*You can also open it by going in "Room Settings" -> "Advanced" -> "Open Devtools"*
|
||||||
|
|
||||||
|
A window must appear. Click on "Send Custom Event". Then click on the red button "Event" to create a "State Event".
|
||||||
|
Put `m.room.tombstone` as the Event Type, keep the State Key field empty, and finally enter the following content (replace the example room ID by the one of your new room):
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"body": "We migrated to a cleartext rooms as E2EE does not work well with large public rooms",
|
||||||
|
"replacement_room": "!ARbIZeDKGloDOnjyyw:deuxfleurs.fr"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
And that's all, you have migrated your old encrypted room to a new clear text one!
|
||||||
|
|
||||||
|
If you want to explore all the possibilities offered by the developer tools, you can read [Matrix specification](https://spec.matrix.org/).
|
||||||
|
For example, our tombstone event is documented here: [`m.room.tombstone`](https://spec.matrix.org/v1.2/client-server-api/#mroomtombstone)
|
Loading…
Reference in a new issue