-
Notifications
You must be signed in to change notification settings - Fork 375
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* Redact `origin` field on events * Provide context and remove hunt for more useless fields * spelling: actually * Apply suggestions from code review Co-authored-by: Richard van der Hoff <[email protected]> * Slight wording alterations * Property --------- Co-authored-by: Richard van der Hoff <[email protected]>
- Loading branch information
Showing
1 changed file
with
61 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# MSC3989: Redact `origin` property on events | ||
|
||
The [current redaction algorithm](https://spec.matrix.org/v1.6/rooms/v10/#redactions) *keeps* the | ||
top-level `origin` property on events during redaction, however, as of this writing, the only use within the | ||
spec of `origin` as a top-level event property is a malformed example of event format. The property has no | ||
significant meaning in modern room versions. | ||
|
||
Within the ecosystem, it's clear that we'd [prefer the property to disappear](https://github.com/matrix-org/matrix-spec/issues/374), | ||
and have [tried to do so](https://github.com/matrix-org/matrix-spec/pull/998) in the past. The | ||
malformed examples are even [known to us](https://github.com/matrix-org/matrix-spec/issues/1480). | ||
|
||
What's not clear, and mentioned in [a comment](https://github.com/matrix-org/matrix-spec/issues/1480#issuecomment-1495183789), | ||
is whether the `origin` property is *actually* used. There do not appear to be any auth rules or similar | ||
which would use the property, however it'd hardly be the first time that the spec was wrong about an | ||
ancient room version like v1. What is clear is that Synapse, where this question would be asked, | ||
wants to [drop support](https://github.com/matrix-org/synapse/issues/3816) for the property and has | ||
taken [steps](https://github.com/matrix-org/synapse/pull/8324) towards that mission by fixing bugs | ||
in the area. In a [quick audit](https://github.com/matrix-org/matrix-spec-proposals/pull/3989#issuecomment-1497659507) | ||
of the Synapse codebase during implementation of this MSC, the `origin` property appears unused. | ||
|
||
Given the above context, this proposal removes the `origin` property from the [redaction algorithm](https://spec.matrix.org/v1.7/rooms/v10/#redactions) | ||
in a future room version, leaving it as-is for existing versions (not that an MSC can change the behaviour | ||
of an already-stable room version anyways). | ||
|
||
Some other properties are additionally useless in modern room versions, however they are already adapted | ||
by [MSC2176](https://github.com/matrix-org/matrix-spec-proposals/pull/2176). | ||
|
||
## Proposal | ||
|
||
In a future room version, the `origin` property is *removed* from the list of *event* keys which are | ||
kept during redaction. Note that this requires a new room version because changing the redaction | ||
algorithm changes how [event IDs](https://spec.matrix.org/v1.6/rooms/v10/#event-ids) are calculated, | ||
as they are [reference hashes](https://spec.matrix.org/v1.6/server-server-api/#calculating-the-reference-hash-for-an-event) | ||
which redact the event during calculation. | ||
|
||
## Potential issues | ||
|
||
No major concerns. | ||
|
||
## Alternatives | ||
|
||
No significant alternatives. | ||
|
||
## Security considerations | ||
|
||
No major concerns. | ||
|
||
## Unstable prefix | ||
|
||
While this MSC is not considered stable, implementations should use `org.matrix.msc3989` as the room | ||
version identifier, using v10 as a base. | ||
|
||
## Dependencies | ||
|
||
No blocking dependencies. | ||
|
||
This MSC would partner well with the following MSCs, however: | ||
* [MSC2176](https://github.com/matrix-org/matrix-spec-proposals/pull/2176) | ||
* [MSC2175](https://github.com/matrix-org/matrix-spec-proposals/pull/2175) | ||
* [MSC2174](https://github.com/matrix-org/matrix-spec-proposals/pull/2174) | ||
* [MSC3821](https://github.com/matrix-org/matrix-spec-proposals/pull/3821) |