|
1 | 1 | # MSC4140: Expiring events with keep alive endpoint
|
2 | 2 |
|
3 |
| -Currently there is not mechanism for a client to provide a reliable way of |
| 3 | +Currently there is no mechanism for a client to provide a reliable way of |
4 | 4 | communicating that an event is still valid. The best expiration method is to post
|
5 | 5 | another event that is stores that it is expired.
|
6 | 6 | In some situations the client just looses connection or fails to sent the expired
|
@@ -121,8 +121,29 @@ the `"will_expire":"running"` events for a specific event type but render the
|
121 | 121 |
|
122 | 122 | ## Alternatives
|
123 | 123 |
|
| 124 | +[MSC4018](https://github.com/matrix-org/matrix-spec-proposals/pull/4018) also |
| 125 | +proposes a way to make call memberships reliable. It uses the client sync loop as |
| 126 | +an indicator to determine if the event is expired. Instead of letting the SFU |
| 127 | +inform about the call termination or using the call app ping loop like we propose |
| 128 | +here. |
| 129 | + |
124 | 130 | ## Security considerations
|
125 | 131 |
|
| 132 | +We are using unauthenticated endpoint to refresh the expirations. Since we use |
| 133 | +the token it is hard to guess a correct endpoint and randomly end `will_expire` |
| 134 | +events. |
| 135 | + |
| 136 | +It is an intentional decision to not provide an endpoint like |
| 137 | +`PUT /_matrix/client/v3/expiration/room/{roomId}/event/{eventId}` |
| 138 | +where any client with access to the room could also `end` or `refresh` |
| 139 | +the expiration. With the token the client sending the event has ownership |
| 140 | +over the expiration and only intentional delegation of that ownership |
| 141 | +(sharing the token) is possible. |
| 142 | + |
| 143 | +On the other hand the token makes sure that the instance gets as little |
| 144 | +information about the matrix metadata of the associated `will_expire` event. |
| 145 | + |
126 | 146 | ## Unstable prefix
|
127 | 147 |
|
128 | 148 | ## Dependencies
|
| 149 | + |
0 commit comments