1
0
Fork 0
mirror of https://gitlab.com/famedly/conduit.git synced 2025-08-11 17:50:59 +00:00
Commit graph

1472 commits

Author SHA1 Message Date
Matthias Ahouansou
be867db3d9
chore: bump ruma 2025-08-10 20:03:07 +02:00
Matthias Ahouansou
a7513cef7f
fix: some edge-cases causing panics
- if servers don't send signatures, it could cause a panic
- clients sending invalid or non-canonical json could cause a panic
2025-07-25 19:11:23 +01:00
Matthias Ahouansou
4bd17b2d34
fix: various issues around key fetching (especially on send_join)
- Fetch keys if cached ones aren't valid to verify current PDU

- Fetch keys from sever when we don't have any keys cached

- Don't reduce validity of current keys if we recieve stale ones
2025-07-13 20:43:04 +01:00
Jakub Pieńkowski
3c13d6e17b fix: Include m.room.member in invite_room_state 2025-07-10 12:22:00 +00:00
Matthias Ahouansou
7ddd32aeff
fix(media): only fetch remote media when requested by authenticated endpoints
this was already done for thumbnails, but I forgot to do so for full-sized media
2025-07-07 11:56:14 +01:00
Jakub Pieńkowski
a87f4b6171 fix: Respond with HTTP code 413, when request size is too big 2025-07-04 16:16:44 +00:00
Matthias Ahouansou
a8fa237fad
refactor: use RoomVersionRules instead of matching against RoomVersionId 2025-07-03 18:53:08 +01:00
Matthias Ahouansou
b631621f8c
feat(spaces): sort space room children & simplify 2025-07-03 18:49:31 +01:00
Matthias Ahouansou
1a4a348ccf
chore: bump ruma 2025-07-03 13:08:47 +01:00
Matthias Ahouansou
5b68ce890d
chore: bump ruma and axum 2025-06-22 18:27:11 +01:00
Matthias Ahouansou
b44b5641f0
chore(rust): upgrade to 1.85.0
required for axum 0.8.x
2025-06-22 14:19:30 +01:00
Matthias Ahouansou
3248efbe4b
fix(registration): enforce the strict user ID grammar
previously, !is_historical was used, but this caused user IDs that are no longer allowed under the current spec version's historial grammer to be allowed in registration
2025-06-22 01:17:17 +01:00
Matthias Ahouansou
1ea5f412b6
fix: don't perform UIA when uploading cross-signing keys for the first time
as per MSC3967
2025-06-16 17:49:30 +01:00
Matthias Ahouansou
263bc61ec8
fix(sync v5): fix underflow when clamping room list indexes & allow empty range
both these issues could both previously cause panics when the user is not in many rooms
2025-06-07 13:36:54 +01:00
Matthias Ahouansou
09e1713c30
feat(devices): update the device last seen timestamp on usage 2025-06-06 13:49:07 +01:00
Curious
a1886a1396 Enhance admin commands parsing 2025-05-31 14:33:53 +00:00
Matthias Ahouansou
1fc82477c5
chore(/versions): declare support for matrix <= v1.12
this is required for Element-* to actually use the authenticated media endpoints
2025-05-12 19:18:42 +01:00
Matthias Ahouansou
45861f8e4a
fix(key_value): return a map of algorithms instead of key ids for count_one_time_keys
this regession was introduced in 2a7aa6242f
2025-05-11 12:38:14 +01:00
Matthias Ahouansou
a566a5687b
fix(config): attempt to deserialize deep directory structure before flat
This meant that if you had set the directory structure, than it would
always deserialize as "Flat".
We also migrate the newly migrated media to the deep directory structure,
if configured.
2025-05-09 18:23:16 +01:00
Matthias Ahouansou
88c95d36a8
chore(crates): bump 2025-05-09 12:34:03 +01:00
Matthias Ahouansou
ec2c61e277
feat(sync): v4 -> v5 2025-05-08 23:02:25 +01:00
Matthias Ahouansou
a189b66ca6
feat(admin): show media command 2025-05-07 14:14:05 +01:00
Matthias Ahouansou
fd16e9c509
feat(admin): list & query information about media 2025-05-07 14:14:05 +01:00
Matthias Ahouansou
c3fb1b0456
feat(media): retention policies 2025-05-07 14:14:05 +01:00
Matthias Ahouansou
594fe5f98f
feat(media): blocking 2025-05-07 14:14:05 +01:00
Matthias Ahouansou
d76637048a
feat(admin): commands for purging media 2025-05-07 14:14:05 +01:00
Matthias Ahouansou
33b02c868d
chore(rust): upgrade to 1.83.0
This is needed for std::io::ErrorKind::DirectoryNotEmpty
2025-05-06 20:44:03 +01:00
Matthias Ahouansou
3171b779c6
feat(media): save user id of uploader 2025-05-06 20:44:03 +01:00
Matthias Ahouansou
19d0ea408c
feat(media): deep hashed directory structure 2025-05-06 20:44:02 +01:00
Matthias Ahouansou
66a14ac802
feat: freeze unauthenticated media 2025-05-06 20:44:02 +01:00
Matthias Ahouansou
70d7f77363
feat(media): use file's sha256 for on-disk name & make directory configurable
In addition, metadata about the file, such as creation time, last access, and
file size, are stored in the database
2025-05-06 20:44:02 +01:00
Matthias Ahouansou
937521fcf1
refactor: allow for post-processing on the config 2025-03-24 12:29:05 +00:00
Matthias Ahouansou
7b9ba62b67
correct path on federated media endpoint doc comment 2025-03-24 12:29:05 +00:00
Matthias Ahouansou
2dce87546a
ci: check for typos 2025-03-24 03:01:57 +00:00
Matthias Ahouansou
d0607b6459
chore(ruma): bump 2025-03-15 00:30:12 +00:00
Matthias Ahouansou
dc5abd6f3b
feat(appservice): pinging 2025-03-08 13:29:18 +00:00
Matthias Ahouansou
b726ccaab8
chore(ruma): upgrade 2025-03-08 13:29:18 +00:00
Matthias Ahouansou
4dc15a4605
refactor: set send_request matrix versions in a single constant 2025-03-08 13:29:12 +00:00
Matthias Ahouansou
42d8e88c74 Merge branch 'membership-refactor' into 'next'
feat: leaving over federation & knocking

Closes #54, #56, and #431

See merge request famedly/conduit!728
2025-03-03 19:16:05 +00:00
Matthias Ahouansou
21af83ea72
feat: knocking
You may notice that we do no database migration for populating the state cache for knocking.
This is because that in all the places where we use the state cache, it doesn't make a difference:
- For local users, the clients wouldn't have been able to knock on rooms, as the `/knock`
  endpoint wasn't implemented yet, and I am not aware of any client which tries to knock over
  `/state`, as it would fail if the server is not currently in the room
- It is not used for remote users
2025-03-03 18:07:21 +00:00
Matthias Ahouansou
f4d90e9989
refactor: move duplicate code and some other small optimizations 2025-03-03 16:25:43 +00:00
Matthias Ahouansou
8acacdebc8
chore: bump ruma & rust 2025-03-03 16:25:43 +00:00
Matthias Ahouansou
d0c1b920ae
feat(federation): implement /make_leave and /send_leave 2025-03-03 16:25:43 +00:00
Matthias Ahouansou
ca76e92abd
refactor federation membership handshake endpoints, reducing duplication 2025-03-03 16:25:43 +00:00
Matthias Ahouansou
be3187fda7
fix: check that keys uploaded by clients are valid
clients uploading invalid keys can cause errors later when trying to add signatures
2025-02-27 00:38:21 +00:00
Matthias Ahouansou
a3386f405e Merge branch 'restricted-make-send-join' into 'next'
feat: support /make_join and /send_join for restricted rooms

Closes #393 and #380

See merge request famedly/conduit!618
2025-02-26 20:47:23 +00:00
Matthias Ahouansou
86b6551dee
make error if content disposition migration fails clearer, as well as logging the name of the responsible file 2025-02-26 16:42:02 +00:00
Matthias Ahouansou
55ec39c47e
feat(federation): support /make_join and /send_join for restricted rooms 2025-02-26 16:04:07 +00:00
Matthias Ahouansou
4942cc8e55
refactor: remove unecessery async 2025-02-25 14:08:57 +00:00
Matthias Ahouansou
2a7aa6242f
chore: upgrade ruma 2025-02-24 23:56:12 +00:00