Commit Graph

263 Commits (c15ae3c126020c3826f15e5f50ca70a669fc1402)

Author SHA1 Message Date
Devin Ragotzy 846a0098c1 Split append_pdu -> append_pdu and build_and_append
Move all state event appending to append_state_pdu.
4 years ago
Devin Ragotzy cb68bf9e0c Use ring crate to generate StatHashes when saving stateid/statehash 4 years ago
Devin Ragotzy c4f5a0a631 Keep track of State at event for state resolution
feat: first steps towards joining rooms over federation
Add state-res as a dependency of conduit
Add reverse_topological_power_sort before append_pdu
Implement statehashstatid_pduid tree for keeping track of state
Clean up implementation of state_hash as key for tracking state
4 years ago
Timo 38663228f5
fix: put reason of redaction in the redacted event 4 years ago
Timo 7ba9263cc6
improvement: show most recent PDUs first when searching 4 years ago
Timo 366554630a
fix: account registration 4 years ago
Timo 804d097a18
fix: wake up /sync for typing events 4 years ago
Timo c092f06068
docs: /sync 4 years ago
Timo df936e8e7e
improvement: guests are more spec-conform 4 years ago
Timo 64789537f5
fix: device list when leaving rooms 4 years ago
Timo 4323cf5fec
improvement: device list works better
The only situation that isn't working yet is sending `left` events for
users when the sender leaves the room
4 years ago
Timo f23fb32e95
fix: set limited to true when skipping messages in /sync 4 years ago
timokoesters e457e19088
feat: search pdus 4 years ago
Timo 27d35f5ab4
docs: fix /register method 4 years ago
Timo 3ff17f69ad
fmt 4 years ago
Timo 4be68eba76
feat: allow querying conduit's room list over federation 4 years ago
Timo 940f533d61
refactor: avoid some allocations when redacting 4 years ago
Timo 04eee089e0
feat: first steps towards joining rooms over federation 4 years ago
timokoesters f40f1d9f75
docs: endpoint documentation 4 years ago
Jonas Platte 75ea0b3163
Update ruma 4 years ago
Devin Ragotzy da1c53aaef Make State struct constructable by lib user 4 years ago
Guillem Nieto b575593647 Do not ignore db errors 4 years ago
Guillem Nieto 47abe6686e Send invites only if invited during the sync request
Fixes: https://git.koesters.xyz/timo/conduit/issues/175
4 years ago
timokoesters 98f37302a6
feat: handle /publicRooms pagination 4 years ago
timokoesters 0616acbde6
feat: handle inhibit_login in /register 4 years ago
timokoesters c1c62b7eb4
refactor: put endpoints into modules 4 years ago
Devin Ragotzy 7a70d8488f Rebase with master and update append_pdu call 4 years ago
Devin Ragotzy c8d7d80eb2 Fix start/end token swap left from dropped commits 4 years ago
Devin Ragotzy 99220565d4 Fix invite leave auth error by moving update_membership 4 years ago
Devin Ragotzy 25c0e75f29 Cargo fmt 4 years ago
Devin Ragotzy 8aac332b3a Move ignore invite logic into update_member 4 years ago
Devin Ragotzy f2fab27d81 Implement filtering invites if sender is ignored by receiver 4 years ago
timokoesters 52b1df6fd2
improvement: handle limit and set limited in /user_directory/search 4 years ago
timokoesters ce460ea159
fix: send device list updates when user is in no rooms 4 years ago
timokoesters b67372b11b
refactor: make all mods in database pub
Now they can easily export their own structs
4 years ago
Devin Ragotzy d948f896c0
Turn append_pdu args into struct PduBuilder 4 years ago
Devin Ragotzy 1c6f211933
Create media::FileMeta to represent a file and meta data 4 years ago
Devin Ragotzy 2da48b941d
Convert all map_err -> expect when deserializing to Raw 4 years ago
Devin Ragotzy 62df9ca580
Fix all clippy warnings, shorten line len in client_server 4 years ago
timokoesters e0d0fb4703
fix: only send device_one_time_keys_count when there are updates 4 years ago
timokoesters 66bc25fcd3
feat: implement /keys/changes 4 years ago
timokoesters 0693387769
improvement: more efficient /sync and only send device updates when sharing a room 4 years ago
timokoesters d891bbb5dc
improve: presence 4 years ago
timokoesters 05f9d927b8
fix: account data 4 years ago
timokoesters 21eb8d4fe3
fix: problems with pdu serialization 4 years ago
timokoesters dd3dab39ae
feat: whoami route 4 years ago
timokoesters 489cbc0a93
refactor: use <_> instead of <_parameter_name> 4 years ago
gnieto cc411c530b Fix custom account data serialization (#165)
Stylistic change

Fix custom data serialization

Build a custom event before storing global account data

Co-authored-by: Guillem Nieto <gnieto.talo@gmail.com>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/165
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
Devin Ragotzy e6a1b0b66f
Add cfg_attr gate to server_server endpoints 4 years ago
Devin Ragotzy 42e0102a2a
Conditionally emit rocket::http_verb attr macros if lib/bin 4 years ago
CapsizeGlimmer 4d4969862a
Implement /rooms/<room_id>/joined_members 4 years ago
CapsizeGlimmer 8fcf8e20b8
fix MR 153 requests; cargo fmt 4 years ago
CapsizeGlimmer fa2da9e048
Implement max_request_size config option 4 years ago
timokoesters 808a7deae3
cargo fmt 4 years ago
timokoesters dc5fb7e33a
feat: encryption_disabled config option
Can be used with ROCKET_ENCRYPTION_DISABLED=true
4 years ago
gnieto 5a8705bd25 Add room tags (#140)
Merge branch 'master' into task/add-tags

Add room tagging support

Co-authored-by: Timo Kösters <timo@koesters.xyz>
Co-authored-by: Guillem Nieto <gnieto.talo@gmail.com>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/140
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
timokoesters b7df8fe83c
fix: stop /messages at `to`
Fixes #150
4 years ago
Jonas Platte 09561ccea3
Upgrade ruma 4 years ago
timokoesters 16576d19cd
improvement: only remove to-device events when sure the client received them
To make this work, I had to remove the recommended limit of 100
to-device events per /sync
(https://matrix.org/docs/spec/client_server/latest#id72)
4 years ago
Devin Ragotzy 87fd432527 Refactor account_data to be more similar to other endpoints 4 years ago
Devin Ragotzy 60381ddcf4 Update to latest ruma/master rev 4 years ago
Devin Ragotzy 61458536ab Merge branch 'master' of https://git.koesters.xyz/timo/conduit into ruma-mono 4 years ago
aura 630196f0a3 Implement get_joined_rooms (#155)
whitelist /joined_rooms in sytest

Signed-off-by: Aurabindo Pillai <mail@aurabindo.in>

style: fmt

feat: implement /joined_rooms (#78)

Signed-off-by: Aurabindo Pillai <mail@aurabindo.in>

Co-authored-by: Aurabindo Pillai <mail@aurabindo.in>
Co-authored-by: timokoesters <timo@koesters.xyz>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/155
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
timokoesters d8e1248df6
improvement: switch to stable rust 4 years ago
Devin R 84d47da392 Simplify deserialization and deconstruction for Responses 4 years ago
Devin R 33bc666859 Use sync ephemeral events in sync Resposne (remove room_id)
Bump ruma to latest master which also fixes some server name as String
to now being of type Box<ServerName>.
4 years ago
Devin R 9a993fa7c1 Convert Pdu to a validated ruma type when calling to_*_event 4 years ago
Devin R 75959cdc10 Resolve stying review issues 4 years ago
Devin R 029c60be78 Replace to_string into_boxed_str with into 4 years ago
Devin R d02685a4fd Update to latest ruma/ruma commit
This will most likely be the API that is released to crates.io so it
should be fairly stable...
4 years ago
Devin R 63e23154f3 Rebase with key backups and cross signing
Moved back to a fork of ruma with timo's key-backup and cross-signing
branch. Ephemeral events in sync responses are EphemeralRoomEventStub
(they also have no room_id like all of sync responses events)
4 years ago
Devin R 84dcb885a7 Return correct Errors and replace panic, fix misc review issues
Remove EventJson todo comments, clean up Cargo.toml commented ruma deps.
4 years ago
Devin R 24b6702047 Add to_*_event_stub methods to pdu, filter for correct event kind
When creating some responses (sync) an AnyRoomEventStub is needed for this
PduEvent will deserialize the JSON as a Stub event and a non stub event
when needed. Ephemeral and account events are checked to be the correct
type and filtered out if not. This requires an extra `deserialize` call
which could/should be removed.

TODO: Possibly get rid of EventJson in some places.
4 years ago
Devin R 7c38e53839 Move to depend on ruma monorepo and ruma-events0.22 4 years ago
Timo Kösters b9de21949d Update to rocket master (#147)
Merge branch 'master' into rocket

Update to rocket master

Co-authored-by: timokoesters <timo@koesters.xyz>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/147
4 years ago
the0 469071e105 feat: implement /event (#144)
Merge branch 'master' into event-route

Event: Implement /event

Co-authored-by: the0 <theo@localhost>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/144
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
CapsizeGlimmer 76aa44ead3 Add logout/all route to main 4 years ago
CapsizeGlimmer 7c2144c6d7 Implement /logout/all 4 years ago
the0 b81939841b feat: account deactivation (#137)
Deactivation: swap unwrap_or(false) to .ok()?

feat: implement deactivate account route

Implement error code on login to deactivated account

Deactivation: Changes requested

Add missing .clone()

Deactivation: Requested changes

Remove unneeded .filter()

Deactivation: badly named signature leads to confusion

Co-authored-by: the0 <theo@localhost>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/137
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
the0 67a1f21f5d feat: implement password changing (#138)
Password: Fixes

Password: Implement logging out all devices except current

Password: Implement password changing

Co-authored-by: the0 <theo@localhost>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/138
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
timokoesters 54ad1fbed9
fix: CI 4 years ago
timokoesters 24c544f650
fix: DMs show up as rooms 4 years ago
Guillem Nieto 8f06d0258a
Remove `is_direct` flag from Join event
When I was investigating the DM issue, I found that join event contained
the `is_direct` flag. According to the spec, this flag should only be
set on "invite" events, but not on join.

Other homeservers do not have this flag on join.
4 years ago
timokoesters a49a572d76
feat: cross-signing 4 years ago
timokoesters 7031240af3
improvement: /members route 4 years ago
timokoesters 02fe030b2a
improvement: better default push rules 4 years ago
timokoesters db685e0cf7
fix: update rocket version 4 years ago
timokoesters 13d474f6ee
fix: update ruma version 4 years ago
PublicByte fa7612f069 refactor: remove unused imports 4 years ago
timokoesters 56d4742201
improvement: log bad database errors automatically 4 years ago
timokoesters 2368a90584
refactor: better error handling 4 years ago
timokoesters f2a5d46628
fix 4 years ago
timokoesters 176bd114a0
fix: use correct device in GET /devices 4 years ago
timokoesters bfe5b89ba4
style: cargo fmt 4 years ago
timokoesters 588049678b
refactor: replace DeviceId with str or String 4 years ago
timokoesters b4d65ab67d
improvement: optimize /sync response 4 years ago
timokoesters 0067f49d52
feat: close registration with ROCKET_REGISTRATION_DISABLED=true 4 years ago
timokoesters c85d363d71
feat: user interactive authentication 4 years ago
Timo Kösters 88d091fca1 Merge pull request 'Allow client to load history on newly joined rooms' (#111) from gnieto/conduit:fix/issue-39-history-load into master
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
Guillem Nieto cc383ac932 Cargo fmt 4 years ago