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
2020-08-23 16:43:21 -04:00
Timo
38663228f5
fix: put reason of redaction in the redacted event
2020-08-23 16:47:27 +02:00
Timo
7ba9263cc6
improvement: show most recent PDUs first when searching
2020-08-23 16:14:11 +02:00
Timo
366554630a
fix: account registration
2020-08-23 16:14:11 +02:00
Timo
804d097a18
fix: wake up /sync for typing events
2020-08-23 16:14:10 +02:00
Timo
c092f06068
docs: /sync
2020-08-23 16:14:10 +02:00
Timo
df936e8e7e
improvement: guests are more spec-conform
2020-08-23 16:14:10 +02:00
Timo
64789537f5
fix: device list when leaving rooms
2020-08-23 16:14:09 +02:00
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
2020-08-23 16:14:09 +02:00
Timo
f23fb32e95
fix: set limited to true when skipping messages in /sync
2020-08-23 16:14:09 +02:00
timokoesters
e457e19088
feat: search pdus
2020-08-23 16:14:08 +02:00
Timo
27d35f5ab4
docs: fix /register method
2020-08-23 16:14:08 +02:00
Timo
3ff17f69ad
fmt
2020-08-23 16:14:07 +02:00
Timo
4be68eba76
feat: allow querying conduit's room list over federation
2020-08-23 16:14:07 +02:00
Timo
940f533d61
refactor: avoid some allocations when redacting
2020-08-23 16:14:06 +02:00
Timo
04eee089e0
feat: first steps towards joining rooms over federation
2020-08-23 16:14:06 +02:00
timokoesters
f40f1d9f75
docs: endpoint documentation
2020-08-23 16:14:06 +02:00
Jonas Platte
75ea0b3163
Update ruma
2020-08-12 23:42:17 +02:00
Devin Ragotzy
da1c53aaef
Make State struct constructable by lib user
2020-08-03 20:56:14 -04:00
Guillem Nieto
b575593647
Do not ignore db errors
2020-08-02 09:38:20 +02:00
Guillem Nieto
47abe6686e
Send invites only if invited during the sync request
...
Fixes: https://git.koesters.xyz/timo/conduit/issues/175
2020-08-02 09:24:47 +02:00
timokoesters
98f37302a6
feat: handle /publicRooms pagination
2020-07-30 22:51:02 +02:00
timokoesters
0616acbde6
feat: handle inhibit_login in /register
2020-07-30 20:52:37 +02:00
timokoesters
c1c62b7eb4
refactor: put endpoints into modules
2020-07-30 18:34:03 +02:00
Devin Ragotzy
7a70d8488f
Rebase with master and update append_pdu call
2020-07-30 09:22:51 -04:00
Devin Ragotzy
c8d7d80eb2
Fix start/end token swap left from dropped commits
2020-07-30 09:22:51 -04:00
Devin Ragotzy
99220565d4
Fix invite leave auth error by moving update_membership
2020-07-30 09:22:51 -04:00
Devin Ragotzy
25c0e75f29
Cargo fmt
2020-07-30 09:22:51 -04:00
Devin Ragotzy
8aac332b3a
Move ignore invite logic into update_member
2020-07-30 09:22:51 -04:00
Devin Ragotzy
f2fab27d81
Implement filtering invites if sender is ignored by receiver
2020-07-30 09:22:51 -04:00
timokoesters
52b1df6fd2
improvement: handle limit and set limited in /user_directory/search
2020-07-30 15:17:34 +02:00
timokoesters
ce460ea159
fix: send device list updates when user is in no rooms
2020-07-30 14:09:05 +02:00
timokoesters
b67372b11b
refactor: make all mods in database pub
...
Now they can easily export their own structs
2020-07-29 21:48:31 +02:00
Devin Ragotzy
d948f896c0
Turn append_pdu args into struct PduBuilder
2020-07-29 21:47:09 +02:00
Devin Ragotzy
1c6f211933
Create media::FileMeta to represent a file and meta data
2020-07-29 21:33:48 +02:00
Devin Ragotzy
2da48b941d
Convert all map_err -> expect when deserializing to Raw
2020-07-29 21:33:47 +02:00
Devin Ragotzy
62df9ca580
Fix all clippy warnings, shorten line len in client_server
2020-07-29 21:32:35 +02:00
timokoesters
e0d0fb4703
fix: only send device_one_time_keys_count when there are updates
2020-07-29 20:44:06 +02:00
timokoesters
66bc25fcd3
feat: implement /keys/changes
2020-07-29 18:05:16 +02:00
timokoesters
0693387769
improvement: more efficient /sync and only send device updates when sharing a room
2020-07-29 17:03:04 +02:00
timokoesters
d891bbb5dc
improve: presence
2020-07-29 13:05:38 +02:00
timokoesters
05f9d927b8
fix: account data
2020-07-29 13:05:37 +02:00
timokoesters
21eb8d4fe3
fix: problems with pdu serialization
2020-07-29 12:59:40 +02:00
timokoesters
dd3dab39ae
feat: whoami route
2020-07-29 12:59:40 +02:00
timokoesters
489cbc0a93
refactor: use <_> instead of <_parameter_name>
2020-07-29 12:59:36 +02:00
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>
2020-07-29 07:48:34 +02:00
Devin Ragotzy
e6a1b0b66f
Add cfg_attr gate to server_server endpoints
2020-07-27 18:54:43 +02:00
Devin Ragotzy
42e0102a2a
Conditionally emit rocket::http_verb attr macros if lib/bin
2020-07-27 18:54:43 +02:00
CapsizeGlimmer
4d4969862a
Implement /rooms/<room_id>/joined_members
2020-07-27 18:21:06 +02:00
CapsizeGlimmer
8fcf8e20b8
fix MR 153 requests; cargo fmt
2020-07-27 17:50:21 +02:00
CapsizeGlimmer
fa2da9e048
Implement max_request_size config option
2020-07-27 17:49:11 +02:00
timokoesters
808a7deae3
cargo fmt
2020-07-26 22:45:10 +02:00
timokoesters
dc5fb7e33a
feat: encryption_disabled config option
...
Can be used with ROCKET_ENCRYPTION_DISABLED=true
2020-07-26 22:41:29 +02:00
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>
2020-07-26 22:33:20 +02:00
timokoesters
b7df8fe83c
fix: stop /messages at to
...
Fixes #150
2020-07-26 22:21:05 +02:00
Jonas Platte
09561ccea3
Upgrade ruma
2020-07-26 16:52:43 +02:00
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 )
2020-07-26 13:59:19 +02:00
Devin Ragotzy
87fd432527
Refactor account_data to be more similar to other endpoints
2020-07-25 15:48:12 -04:00
Devin Ragotzy
60381ddcf4
Update to latest ruma/master rev
2020-07-25 14:25:24 -04:00
Devin Ragotzy
61458536ab
Merge branch 'master' of https://git.koesters.xyz/timo/conduit into ruma-mono
2020-07-25 13:46:28 -04:00
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>
2020-07-25 18:35:22 +02:00
timokoesters
d8e1248df6
improvement: switch to stable rust
2020-07-22 22:42:01 +02:00
Devin R
84d47da392
Simplify deserialization and deconstruction for Responses
2020-07-21 16:26:01 -04:00
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>.
2020-07-21 14:04:39 -04:00
Devin R
9a993fa7c1
Convert Pdu to a validated ruma type when calling to_*_event
2020-07-18 08:22:30 -04:00
Devin R
75959cdc10
Resolve stying review issues
2020-07-18 08:21:25 -04:00
Devin R
029c60be78
Replace to_string into_boxed_str with into
2020-07-17 19:52:04 -04:00
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...
2020-07-17 16:04:05 -04:00
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)
2020-07-17 16:04:05 -04:00
Devin R
84dcb885a7
Return correct Errors and replace panic, fix misc review issues
...
Remove EventJson todo comments, clean up Cargo.toml commented ruma deps.
2020-07-17 16:03:36 -04:00
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.
2020-07-17 16:03:33 -04:00
Devin R
7c38e53839
Move to depend on ruma monorepo and ruma-events0.22
2020-07-17 16:03:02 -04:00
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
2020-07-14 18:23:26 +02:00
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>
2020-07-11 14:08:37 +02:00
CapsizeGlimmer
76aa44ead3
Add logout/all route to main
2020-07-05 15:35:03 -04:00
CapsizeGlimmer
7c2144c6d7
Implement /logout/all
2020-07-05 15:35:03 -04:00
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>
2020-07-05 07:48:19 +02:00
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>
2020-07-02 20:38:25 +02:00
timokoesters
54ad1fbed9
fix: CI
2020-06-26 16:26:29 +02:00
timokoesters
24c544f650
fix: DMs show up as rooms
2020-06-26 15:16:15 +02:00
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.
2020-06-26 15:16:15 +02:00
timokoesters
a49a572d76
feat: cross-signing
2020-06-26 15:16:15 +02:00
timokoesters
7031240af3
improvement: /members route
2020-06-16 23:25:15 +02:00
timokoesters
02fe030b2a
improvement: better default push rules
2020-06-16 23:25:14 +02:00
timokoesters
db685e0cf7
fix: update rocket version
2020-06-16 13:53:15 +02:00
timokoesters
13d474f6ee
fix: update ruma version
2020-06-16 12:19:58 +02:00
PublicByte
fa7612f069
refactor: remove unused imports
2020-06-11 21:06:43 +02:00
timokoesters
56d4742201
improvement: log bad database errors automatically
2020-06-11 14:58:44 +02:00
timokoesters
2368a90584
refactor: better error handling
2020-06-11 13:14:35 +02:00
timokoesters
f2a5d46628
fix
2020-06-08 15:17:58 +02:00
timokoesters
176bd114a0
fix: use correct device in GET /devices
2020-06-08 14:23:42 +02:00
timokoesters
bfe5b89ba4
style: cargo fmt
2020-06-08 11:45:22 +02:00
timokoesters
588049678b
refactor: replace DeviceId with str or String
2020-06-08 11:40:19 +02:00
timokoesters
b4d65ab67d
improvement: optimize /sync response
2020-06-08 11:39:32 +02:00
timokoesters
0067f49d52
feat: close registration with ROCKET_REGISTRATION_DISABLED=true
2020-06-08 11:39:32 +02:00
timokoesters
c85d363d71
feat: user interactive authentication
2020-06-08 11:39:30 +02:00
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>
2020-06-07 11:21:53 +02:00
Guillem Nieto
cc383ac932
Cargo fmt
2020-06-06 19:48:01 +02:00
Guillem Nieto
9269f009db
Allow client to load history on newly joined rooms
...
On /sync, check if a room is a new join between `since` parameter and
now. If it's a newly joined room, set the limited flag to true, which will force
the client to load room messages via the `/messages` endpoint.
On `master`, I could not reproduce the messages not showing to others
when joining after being invited.
Fixes #39
2020-06-06 19:29:03 +02:00
timokoesters
8eedc12567
fix: edus will not be removed after timeout
2020-06-06 15:23:37 +02:00