1
0
Fork 0
ruma/crates/ruma-federation-api/CHANGELOG.md
2026-04-26 14:37:55 +02:00

358 lines
10 KiB
Markdown

# Changelog
## Unreleased
## 0.14.0
Breaking changes:
- Add support for extended profile fields to `get_profile_information` endpoint.
- The `field` field of `Request` takes a `ProfileFieldName` rather than a
custom enum.
- `Response` has no public fields anymore but stores all profile fields. The
fields can be accessed with `.get()`, `.iter()` or `.into_iter()`.
`Response::new()` takes no arguments and creates an empty response. Fields
can be added using `.set()`, or the `FromIterator` and `Extend`
implementations.
- The `compat-empty-string-null` cargo feature was removed because it is now
unused.
- The `create_join_event::v1` and `create_leave_event::v1` endpoints were
removed, according to MSC4376 / Matrix 1.18.
Improvements:
- Add the Policy Server event signing endpoint, according to MSC4284 / Matrix
1.18.
- Add unstable support for MSC4373.
## 0.13.1
Bug fixes:
- Fix code that was not properly gated behind `client` or `server` features.
## 0.13.0
Breaking changes:
- All the endpoints use a `SinglePath` rather than a `VersionHistory` as
`Metadata::PathBuilder`. Making a request doesn't require to provide a dummy
`SupportedVersions` anymore.
- The endpoints that became stable from Matrix 1.1 onwards have a new
`unstable` module to be able to support the unstable endpoint defined in
their MSC.
Improvements:
- `RawStrippedState::Stripped` is deprecated in favor of the `Pdu` variant,
according to Matrix 1.16.
- `ServerSignatures` supports adding the `X-Matrix` header to outgoing requests.
- `XMatrix::request_object()` allows to construct the canonical JSON object to
sign from a request.
- `XMatrix` can be constructed from a request with `try_from_http_request()`.
- The signature in the `sig` field of `XMatrix` can be used to verify a request
with `verify_request()`.
## 0.12.0
Breaking changes:
- Remove the `origin` field in `create_join_event::{v1/v2}::RoomState` due to a
clarification in the spec.
- The type of `signed` in `thirdparty::bind_callback::v1::Request` was fixed. It
uses `Raw<SignedContent>` from `RoomMemberEventContent`.
- The type of `content` in `thirdparty::exchange_invite::v1::Request` was fixed.
It is a `RoomMemberEventContent`. A new constructor was added,
`with_third_party_invite()` that constructs the event content from a
`ThirdPartyInvite`.
- Update the endpoint metadata definitions to use the new syntax for variables.
- Use `ruma_common::RoomSummary` for the `space::get_hierarchy` endpoint.
- `SpaceHierarchyParentSummary` is now built around `RoomSummary`, and
`SpaceHierarchyParentSummaryInit` was removed.
- `SpaceHierarchyChildSummary` was replaced by `RoomSummary` and
`SpaceHierarchyChildSummaryInit` was removed.
- Merge the `knock` module into `membership`, and rename `create_knock_event_template` and
`send_knock` to `prepare_knock_event` and `create_knock_event` respectively for consistency.
- Use `RawStrippedState` instead of `Raw<AnyStrippedStateEvent>`, to allow non-stripped events to be
represented for `create_invite` and `create_knock_event`.
Bug fixes:
- Add constructor for `thirdparty::bind_callback::v1::Response`.
Improvements:
- ruma-server-util was merged into this crate. `XMatrix` is available in the
`authentication` module.
- Add a method to construct a `thirdparty::exchange_invite::v1::Request` from a
`thirdparty::bind_callback::v1::ThirdPartyInvite` and a
`RoomThirdPartyInviteEventContent`.
- Add unstable support for full PDUs in `create_invite` and `create_knock_event` alongside stripped
events from MSC4311 behind the `unstable-msc4311` feature.
## 0.11.2
Bug fixes:
- Restore the `unstable-unspecified` cargo feature. There are still a few places
that rely on that feature that would require a breaking change to remove the
feature.
Improvements:
- Add the `encryption` and `room_version` fields to
`SpaceHierarchyParentSummary` and `SpaceHierarchyChildSummary`, according to
MSC3266 / Matrix 1.15.
## 0.11.1
Improvements:
- The `unstable-unspecified` cargo feature was removed. The `pdus` field of
`send_transaction_message::v1::Request` is always serialized. To allow this
field to be missing during deserialization, use the `compat-optional-txn-pdus`
cargo feature.
## 0.11.0
Improvements:
- The `unstable-exhaustive-types` cargo feature was replaced by the
`ruma_unstable_exhaustive_types` compile-time `cfg` setting. Like all `cfg`
settings, it can be enabled at compile-time with the `RUSTFLAGS` environment
variable, or inside `.cargo/config.toml`. It can also be enabled by setting
the `RUMA_UNSTABLE_EXHAUSTIVE_TYPES` environment variable.
## 0.10.0
Breaking changes:
- Remove the unused `KeyObject` struct. It is actually supposed to be the same type
as `ruma_common::encryption::SignedKey`.
- Use `OwnedOneTimeKeyId` and `OneTimeKeyAlgorithm` instead of
`OwnedDeviceKeyId` and `DeviceKeyAlgorithm` respectively to identify one-time
and fallback keys and their algorithm.
- Use `ServerSignatures` for the `signatures` or `ServerSigningKeys`.
Bug fixes:
- `ServerSigningKeys` can be deserialized when `old_verify_keys` is missing, due to a
clarification in the spec.
Improvements:
- Add support for authenticated media endpoints, according to MSC3916 / Matrix 1.11
- Make `Content-Type` and `Content-Disposition` mandatory when creating media
responses, according to MSC2701 / MSC2702 / Matrix 1.12.
## 0.9.0
Breaking changes:
- Use `RawValue` to represent body of `/v1/send_join` request, rather than incorrectly using
query parameters
- The http crate had a major version bump to version 1.1
Improvements:
- Implement `From<SpaceHierarchyParentSummary>` for `SpaceHierarchyChildSummary`
- Add unstable support for optional `via` field on the `create_invite` endpoint request from
MSC4125 behind the `unstable-msc4125` feature.
- Add unstable support for the `report_content` endpoint from MSC3843 behind the
`unstable-msc3843` feature.
## 0.8.0
Bug fixes:
- Use `SpaceRoomJoinRule` for `SpaceHierarchy(Parent/Child)Summary(Init)`. Even if
(de)serialization worked before, it is more correct to expect any join rule, like in the CS API
Improvements:
- Deprecate the `v1/send_join` and `v1/send_leave` endpoints according to a spec clarification
## 0.7.1
Improvements:
- Stabilize support for getting an event by timestamp (MSC3030 / Matrix 1.6)
- Stabilize support for partial state in `v2/send_join` (MSC3706 / Matrix 1.6)
## 0.7.0
Bug fixes:
- Add the `event` field to `RoomState` according to MSC3083 / Matrix v1.2
Breaking changes:
- Split `membership::create_join_event::RoomState` into separate types in the `v1` and `v2` modules
Improvements:
- Add unstable support to get an event by timestamp (MSC3030)
- Add unstable support to request partial state in `send_join` (MSC3706)
## 0.6.0
Breaking changes:
- Upgrade dependencies
## 0.5.0
Improvements:
- Add support for the space summary API in `space::get_hierarchy` according to MSC2946.
- Add `transactions::edu::Edu::SigningKeyUpdate` according to MSC1756
- Add Add cross-signing fields to `get_devices::Response` according to MSC1756
- Add unstable endpoint `discovery::get_server_versions` according to MSC3723
## 0.4.0
Breaking changes:
- Replace `Raw<Pdu>` with `Box<RawJsonValue>` or `&RawJsonValue`
- Borrow more request fields
- Make `device_display_name` field optional in `DeviceListUpdateContent` and update constructor accordingly
- Remove unneeded `minimum_valid_until_ts` query parameter from `get_remote_server_keys_batch` endpoint
Improvements:
- Move `knock` module out of `unstable-pre-spec`
- `knock:::send_knock::v1::Request` requires a PDU instead of the `knock_event`
- Move cross-signing properties of `keys::get_keys::v1::Response` out of `unstable-pre-spec`
- Move MSC implementations from `unstable-pre-spec` to per-msc features:
```text
unstable-msc2448
unstable-msc3618
```
## 0.3.1
Bug fixes:
- Fix JSON body (de)serialization of `discovery::get_remote_server_keys::batch::v2::Request`
- Fix query parameter deserialization of `discovery::get_remote_server_keys::batch::v2::Request`
## 0.3.0
Breaking changes:
- Upgrade dependencies
Improvements:
- Add more endpoints:
```rust
knock::{
create_knock_event::v1,
send_knock::v1,
}
```
- Add unstable support for room knocking.
## 0.2.0
Breaking Changes:
- Change types of keys::claim_keys::v1 response to match the client-server endpoint
- Update `thirdparty::bind_callback::v1::Request::new` to have a `medium` parameter
Improvements:
- Add master_keys and self_signing keys to keys::get_keys::v1 response
- Add `thirdparty::bind_callback::v1::Request::email` convenience constructor
## 0.1.0
Breaking Changes:
- Replace `directory::get_public_rooms::v1::{PublicRoomsChunk, RoomNetwork}` with types from
`ruma_common::directory`
- Wrap `PduStub`s in `membership::create_join_event` in `Raw`
- Remove `PduStub` (it only existed because of the spec being misleading)
- Rename `pdu_stub` fields to `pdu`
- Upgrade dependencies
- Wrap `Pdu`s in `backfill::get_backfill` in `Raw`
- Use `ruma_identifiers::MxcUri` instead of `String` for `avatar_url` in
`query::get_profile_information::v1`
- Rename `homeserver` property to `server` on `discover_homeserver::Response`
Improvements:
- Add endpoints:
```text
backfill::get_backfill::v1,
device::get_devices::v1,
directory::get_public_rooms_filtered::v1,
event::get_missing_events::v1,
keys::{
claim_keys::v1,
query_keys::v1,
},
membership::{
create_invite::{v1, v2},
create_join_event::v2,
create_leave_event::{v1, v2},
get_leave_event::v1,
},
query::get_custom_information::v1,
thirdparty::{
bind_callback::v1,
exchange_invite::v1,
},
```
Bug fixes:
- Fixes `discover_homeserver::Response` serialization and deserialization
## 0.0.3
Breaking Changes:
- Replace `RoomV3Pdu` with `ruma_events::pdu::{Pdu, PduStub}`.
Improvements:
- Add endpoints:
```text
authorization::get_event_authorization::v1,
openid::get_openid_userinfo::v1,
query::get_profile_information::v1,
transactions::send_transaction_message::v1,
```
## 0.0.2
Improvements:
- Add endpoints:
```text
directory::get_public_rooms::v1,
discovery::{
discover_homeserver,
get_server_keys::v2,
get_server_version::v1
},
membership::{
create_join_event::v1,
create_join_event_template::v1
},
query::get_room_information::v1,
version::get_server_version::v1
```
## 0.0.1
Improvements:
- Provide `RoomV3Pdu` type for room versions 3 and above