AndSDev
39c09f865a
refactor: Create the directory for media only if the directory_structure
is Deep
2025-06-10 15:13:58 +03:00
AndSDev
b2a4e398d8
style: fix code fmt
2025-06-10 11:01:07 +03:00
AndSDev
efe774b3c1
refactor: improve error processing for S3
2025-06-10 07:55:59 +00:00
AndSDev
a30e0537e4
refactor: group S3 config fields together
2025-06-10 06:56:06 +00:00
AndSDev
263b424de3
refactor: reduce the size of the S3 configuration struct
2025-06-09 11:00:09 +03:00
AndSDev
59e4f4d8f1
feat(service/media): add deep hashed directory structure for S3
2025-06-06 17:19:18 +03:00
AndSDev
2c47045659
feat(service/media): improve S3 error processing
2025-06-06 12:59:27 +03:00
AndSDev
e7822f0332
refactor(service/media): make all fs operations async
2025-06-06 10:46:58 +03:00
AndSDev
0b5e93eeff
fix(service/media): create directory for media file only on new file creation
...
Any access to a media file created a directory for it, which led to unnecessary operations. Especially if this media file had already been deleted (as well as its directory).
2025-06-06 10:34:02 +03:00
AndSDev
6541402609
feat(service/media): add S3 support
2025-06-06 08:56:19 +03:00
AndSDev
30d578a81a
refactor: media.delete_file
is async
2025-06-04 16:15:42 +03: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
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
Matthias Ahouansou
e20dd1469a
Merge branch 'error-parse-image-thumbnail' into 'next'
...
fix(media): return an error when content is failed to be parsed as an image
See merge request famedly/conduit!734
2025-02-04 16:37:26 +00:00
Matthias Ahouansou
30855cef81
fix(media): return an error when content is failed to be parsed as an image
2025-02-04 16:21:14 +00:00