Commit Graph

658 Commits

Author SHA1 Message Date
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
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
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
2dce87546a ci: check for typos 2025-03-24 03:01:57 +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
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
2a7aa6242f chore: upgrade ruma 2025-02-24 23:56:12 +00:00
Matthias Ahouansou
406367b4f2 chore: upgrade rust
this is needed for recent versions of ruma
2025-02-23 16:22:34 +00:00
Matthias Ahouansou
3686f6d260 remove unused backends
they have been disabled for a long time, and are unlikely to ever make a comeback
2025-02-23 15:49:29 +00:00
Laurențiu Nicola
a2b72f48b9 fix: remove content-disposition debug prints 2024-10-08 19:41:04 +03:00
Timo Kösters
65fe6b0ab5 fix: Empty content dispositions could create problems 2024-09-25 09:06:43 +02:00
Timo Kösters
fea85b0894 fix: Migration typo for media 2024-09-24 23:07:19 +02:00
Timo Kösters
a7405cddc0 fix: Matrix media repo 2024-09-24 19:43:26 +02:00
Timo Kösters
3df21e8257 fix: old media used spaces in content disposition without quotes 2024-09-24 16:46:32 +02:00
avdb13
423b0928d5 use ruma content disposition type in place of string
Co-Authored-By: Matthias Ahouansou <matthias@ahouansou.cz>
2024-08-22 19:03:32 +01:00
Matthias Ahouansou
c453d45598 fix(keys): only use keys valid at the time of PDU or transaction, and actually refresh keys
Previously, we only fetched keys once, only requesting them again if we have any missing, allowing for ancient keys to be used to sign PDUs and transactions
Now we refresh keys that either have or are about to expire, preventing attacks that make use of leaked private keys of a homeserver
We also ensure that when validating PDUs or transactions, that they are valid at the origin_server_ts or time of us receiving the transaction respectfully
As to not break event authorization for old rooms, we need to keep old keys around
We move verify_keys which we no longer see in direct requests to the origin to old_verify_keys
We keep old_verify_keys indefinitely as mentioned above, as to not break event authorization (at least until a future MSC addresses this)
2024-06-12 19:41:43 +02:00
Matthias Ahouansou
144d548ef7 fix: permission checks for aliases 2024-06-12 19:41:31 +02:00
Benjamin Lee
7b259272ce fix: do not return redacted events from search 2024-06-12 19:41:02 +02:00
Matthias Ahouansou
ba2a5a6115 chore: bump all dependencies 2024-06-11 20:35:56 +01:00
Matthias Ahouansou
19154a9f70 refactor: add server_user to globals 2024-05-31 21:56:11 +01:00
mikoto
a888c7cb16 OpenID routes
Co-Authored-By: Matthias Ahouansou <matthias@ahouansou.cz>
2024-05-28 15:39:19 +01:00
Matthias Ahouansou
256dae983b chore: bump rust
and fix new lints that come with it
2024-05-05 13:27:56 +01:00
Timo Kösters
9176474513 Merge branch 'ruma-registration-type' into 'next'
fix: don't panic if registration url is empty

See merge request famedly/conduit!583
2024-03-23 15:33:01 +00:00
Timo Kösters
0bb28f60cf refactor: minor appservice code cleanup 2024-03-22 08:59:36 +01:00
Timo Kösters
d2817679e5 refactor: remove previous typing implementation and add sync wakeup for new one 2024-03-22 08:24:17 +01:00
Timo Kösters
879a8b969d improvement: use simpler rocksdb config 2024-03-21 15:04:40 +01:00
Matthias Ahouansou
fa930182ae fix(appservices): don't panic on empty registration url
perf(appservices): cache regex for namespaces
2024-03-10 13:27:48 +00:00
Timo Kösters
62dda7a43f improvement: delete old rocksdb LOG files 2024-02-29 10:28:06 +01:00
Timo Kösters
d7fd89df49 fix: avoid panic when client is confused about rooms 2024-02-28 16:31:41 +01:00
Charles Hall
1274b48ebb run cargo update
`IndexMap::remove` was deprecated in favor of explicitly named methods.
I assume that we actually needed to be using `shift_remove`, otherwise
we probably wouldn't be bothering with `indexmap` here in the first
place. I wonder if this fixes any bugs lol
2024-01-29 16:17:25 -08:00
Charles Hall
9453dbc740 update rust toolchain
It comes with a bunch of new lints (yay!) so I fixed them all so CI will
keep working.

Also apparently something about linking changed because I had to change
the checks for deciding the linker flags for static x86_64 builds to
keep working.
2024-01-25 21:44:40 -08:00
Charles Hall
ab1fff2642 fix cargo clippy lints 2024-01-24 07:22:37 -08:00
Charles Hall
92c5b6b86c fix cargo check lints 2024-01-24 07:22:25 -08:00
Timo Kösters
75c80df271 Sliding sync improvements and redaction fixes 2023-09-13 20:54:53 +02:00
Timo Kösters
c028e0553c feat: registration tokens 2023-08-09 18:27:30 +02:00
Timo Kösters
c1e2ffc0cd improvement: maybe cross signing really works now 2023-08-07 13:55:44 +02:00
Timo Kösters
acfe381dd3 fix: threads get updated properly
Workaround for element web while waiting for https://github.com/matrix-org/matrix-js-sdk/pull/3635
2023-07-31 16:18:23 +02:00
Timo Kösters
b8c164dc60 feat: version checker 2023-07-29 21:53:57 +02:00
Charles Hall
9fb8498067 relax recovery mode 2023-07-26 15:32:36 -07:00
Timo Kösters
a9ba067e77 fix: e2ee over federation 2023-07-16 16:50:03 +02:00
Timo Kösters
c3966f501c fix: nheko e2ee verification bug 2023-07-10 23:10:27 +02:00
Timo Kösters
edd4a3733f fix: actually clear memory in the admin commands 2023-07-10 16:27:42 +02:00
Timo Kösters
a2c3256ced improvement: better memory usage and admin commands to analyze it 2023-07-03 19:41:07 +02:00