Add information on MSC3873 dotted-path escape rules.

This commit is contained in:
Patrick Cloke 2023-03-14 09:32:01 -04:00
parent 6339df65ed
commit 4fe1ca3507
2 changed files with 20 additions and 6 deletions

View file

@ -942,6 +942,20 @@ uses the following rules:
* The character `*` matches zero or more characters.
* `?` matches exactly one character.
## Dot-separated property paths
It is useful to express the "path" to an event property by concatenating property
names with dots, e.g. `content.body` would represent the a `body` property in the
event's `content`.
To handle ambiguity when a property name contains a dot, any literal dot or
backslash found in a property name should be escaped with a backslash. E.g. a
property `m.relates_to` in the `content` would be expressed as
`content.m\.relates_to`.
It is recommended that implementations do not redundantly escape characters, as
other escape sequences are reserve for future use.
## Security Threat Model
### Denial of Service

View file

@ -214,8 +214,8 @@ The following conditions are defined:
This is a glob pattern match on a property of the event. Parameters:
- `key`: The dot-separated path of the property of the event to match, e.g.
`content.body`.
- `key`: The [dot-separated path of the property](/appendices#dot-separated property paths)
of the event to match, e.g. `content.body`.
- `pattern`: The [glob-style pattern](/appendices#glob-style-matching) to match against.
@ -297,8 +297,8 @@ For an example of this, see the default rule
This is an exact value match on a property of the event. Parameters:
- `key`: The dot-separated path of the property of the event to match, e.g.
`content.body`.
- `key`: The [dot-separated path of the property](/appendices#dot-separated property paths)
of the event to match, e.g. `content.body`.
- `value`: The value to match against.
@ -341,8 +341,8 @@ The following `m.federate` values will NOT match:
This matches if an array property of an event exactly contains a value. Parameters:
- `key`: The dot-separated path of the property of the event to match, e.g.
`content.body`.
- `key`: The [dot-separated path of the property](/appendices#dot-separated property paths)
of the event to match, e.g. `content.body`.
- `value`: The value to match against.