Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document MSC3758, MSC3966, MSC3873, and MSC3980. #1464

Merged
merged 11 commits into from
Apr 4, 2023
14 changes: 14 additions & 0 deletions content/appendices.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
clokep marked this conversation as resolved.
Show resolved Hide resolved
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`.
clokep marked this conversation as resolved.
Show resolved Hide resolved

It is recommended that implementations do not redundantly escape characters, as
other escape sequences are reserve for future use.
clokep marked this conversation as resolved.
Show resolved Hide resolved

## Security Threat Model

### Denial of Service
Expand Down
12 changes: 6 additions & 6 deletions content/client-server-api/modules/push.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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.

Expand Down Expand Up @@ -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.

Expand Down