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
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
4 years ago
timokoesters
8eedc12567
fix: edus will not be removed after timeout
4 years ago
Jonas Platte
7526fd8602
Switch to the ruma meta-crate
4 years ago
timokoesters
d404f902bf
fix: send presence too often
4 years ago
timokoesters
32da76b9a2
feat: heroes, don't send notifications every time
4 years ago
timokoesters
b7f7a39973
feat: kick,ban,unban user route
4 years ago
timokoesters
a8df1acdfd
feat: load replies, forward pagination
4 years ago
timokoesters
168f2281fd
improvement: bundle typing events and only send on changes
...
Fixes #67 and #49
4 years ago
timokoesters
8328eeb5ac
Make sytest not fail
4 years ago
timokoesters
1c85b0fd05
remove tests in favor of sytests
4 years ago
timokoesters
b192fddf2f
fix: show device display names
4 years ago
timokoesters
325e373684
refactor: small changes
4 years ago
timokoesters
19c9e4b916
fix: room version 6
4 years ago
gnieto
0883c44659
Implement devices API ( #20 )
...
small improvements
Cargo fmt
Simplify insert and update methods
Review feedback
Remove has_device method calls
Load all devices with a single db call
Remove device as in logout
Put all metadata on the same tree
Create userdevice key fucntion
Implement devices API
Implement all the devices endpoints. There's a couple of pending tasks:
- Integrate the "logout" logic once it lands to master (this should
remove the given device from the database).
- Track and store last seen timestamp and IP.
Co-authored-by: timokoesters <timo@koesters.xyz>
Co-authored-by: Guillem Nieto <gnieto.talo@gmail.com>
4 years ago
gnieto
ed9b544ace
Implement devices API ( #20 )
...
small improvements
Cargo fmt
Simplify insert and update methods
Review feedback
Remove has_device method calls
Load all devices with a single db call
Remove device as in logout
Put all metadata on the same tree
Create userdevice key fucntion
Implement devices API
Implement all the devices endpoints. There's a couple of pending tasks:
- Integrate the "logout" logic once it lands to master (this should
remove the given device from the database).
- Track and store last seen timestamp and IP.
Co-authored-by: timokoesters <timo@koesters.xyz>
Co-authored-by: Guillem Nieto <gnieto.talo@gmail.com>
4 years ago
Jean-Baptiste Petit
1222289c75
get_state_events_for_key_route return the content of the requested event instead of the all event.
4 years ago
timokoesters
5a47c75427
fix: make redactions permanent
4 years ago
timokoesters
b519bc6962
fix: only show notifications for messages
4 years ago
timokoesters
4e507ef706
feat: room visibility and aliases
4 years ago
timokoesters
9c26e22ad7
improvement: load aliases from database
4 years ago
timokoesters
18bf67748c
feat: redaction
4 years ago
timokoesters
ca77c79222
fix: /register lowercases user ids
...
fixes #24
4 years ago
Guillem Nieto
4b3b562347
Get device_id from body instead of auth data
...
Device_id was retrieved from the auth data instead of login's body and
this was causing that a new device was created on every login.
This is (I guess) provoking that some sytests are failing (for example,
"POST /login returns the same device_id as that in the request").
4 years ago
timokoesters
58683585cc
improvement: show more info in public rooms list
4 years ago
timokoesters
b6c0e9bfb2
feat: access control
4 years ago
timokoesters
c8ba9dce01
feat: proper room creation
4 years ago
josias
b106d1393b
Add logout route and database methods ( #21 )
...
Condense keys
Move remove methods to remove_device
Code cleanup
Add method for removing todevice events
Remove unnecessary existence checks
Add logout route and database methods
Co-authored-by: Josias <justjosias@tutanota.com>
4 years ago
timokoesters
1014388a9c
fix: one time keys are never removed
4 years ago
timokoesters
d95e8b4880
fix: problem with to-device for all devices
4 years ago
timokoesters
43478a5870
fix: send correct membership events when joining / creating rooms
4 years ago
timokoesters
8df2a1a072
improvement: add room topic to public room dir
4 years ago
timokoesters
e0fccffde0
fix: changing avatar url now sends room events
4 years ago
timokoesters
ada260bf42
fix: use png for thumbnails
4 years ago
timokoesters
eb4af85765
fix: riot sometimes freaks out when refreshing
4 years ago
timokoesters
d544d28b6e
feat: image thumbnails
4 years ago
timokoesters
61f4f2c716
improvement: implement GET publicRooms
4 years ago
timokoesters
821c608c6a
feat: media
4 years ago
timokoesters
42ae433b25
fix: send devicekeyupdate users in /sync
4 years ago
timokoesters
f0aed35ecf
improvement: user dir search also searches in displaynames
4 years ago
timokoesters
56dd6cb16f
improvement: get state
4 years ago
timokoesters
6215218c3c
fix: account data json
4 years ago
timokoesters
7fc71b3968
feat: end to end encryption
4 years ago
timokoesters
4fb79ebb4c
chore: update dependencies
4 years ago
timokoesters
d08f91d1c3
fix: only allow valid usernames in /register
4 years ago
Rudi Floren
00a9424719
feat: sytests
4 years ago
timokoesters
8e041f90dd
refactor: make cargo clippy happier
4 years ago
timokoesters
1dbde0e1c1
improvement: add option to get device id from token
4 years ago
timokoesters
ee0d6940bd
feat: presence updates
4 years ago
timokoesters
551308e9a8
Update dependencies and send displayname updates again
4 years ago
timokoesters
8f67c01efd
refactor: split database into multiple files, more error handling, cleaner code
4 years ago
timokoesters
4b191a9311
improvement: set default push rules on register
4 years ago
timo
3cd0f89729
Add /_matrix/client/r0/register/available endpoint
4 years ago
Marcel
4bc7712ee4
[ClientServer] Add /_matrix/client/r0/register/available endpoint
...
Took 1 hour 25 minutes
4 years ago
timokoesters
4ca1ada73e
update ruma
4 years ago
timokoesters
b02c568941
feat: notifications, simple permission systems
4 years ago
timokoesters
169dbe6c37
fix: send full state after joining a room
4 years ago
timokoesters
c769283953
Update readme
4 years ago
timokoesters
fd1aea7e36
Update dependencies
4 years ago
timokoesters
1cdf30f38c
Add hostname to Rocket.toml config
4 years ago
timokoesters
23cb550d00
forget rooms, load history
4 years ago
timokoesters
4cc0a07092
feat: user renaming
4 years ago
timokoesters
720cc0cffc
feat: federated room directory
4 years ago
timokoesters
120b6f4b95
Bump dependencies and fixes
4 years ago
timokoesters
873d191569
fix: http body as content when signing
4 years ago
timokoesters
1af6dd984a
More work on federation
4 years ago
timokoesters
b0d9ccdb2d
Signing, basis for federation
4 years ago
timokoesters
9b79798e56
start work on signing
4 years ago
timokoesters
80ddf80f17
work
4 years ago
TheCycoONE
6d858c39ca
Fix typo in password message
4 years ago
gnieto
fa9e127a1e
Store hashed passwords ( #7 )
...
Use if let instead of unwrap
Default to invalid password if could not calculate
Move hash password methdo and return Result
Rename get_password method
Default to empty password when no pwd is received
Store hashed passwords
Store passwords hashed with Argon2 and verify password with that stored
hash.
Co-authored-by: Guillem Nieto <gnieto.talo@gmail.com>
4 years ago
timokoesters
abcce95dd8
feat: invites, better public room dir, user search
4 years ago
timokoesters
3debb6203c
feat: handle typing events
4 years ago
timokoesters
3b9cadeec2
feat: read receipts
4 years ago
timokoesters
ab8c2f1e5e
Rename pduid_pdus to pduid_pdu
4 years ago
timokoesters
fd829bfa0d
move client_server code into own file
4 years ago
timokoesters
040296c711
Add test support and impl dummy /read_markers
4 years ago
timo
3f2bf208a9
Merge pull request 'Add displayname and avatar_url endpoints' ( #5 ) from MTRNord/matrixserver:accountdata into master
4 years ago
Marcel
57264f72e9
Fix avatar_url error message if not starting with mxc://
...
Took 8 minutes
4 years ago
Marcel
8bcbc983c3
Change and add Comments to the profile endpoints
...
Add missing docs
Took 9 minutes
4 years ago
Marcel
49fe5e3271
Rename userid_avatar_url to userid_avatarurl and fix debug print
...
Run cargo fmt
Took 5 minutes
4 years ago
Marcel
b1284fd509
Replace profile_* with userid_*
...
Add a missing dot in the errormessage
Require mxc:// to be present at the start of an avatar_url
Update mxc check TODO
Show displayname or avatar_url if either is available when getting the profile Endpoint
Return the correct data in case of a empty displayname or an empty avatar_url
Took 50 minutes
Took 34 seconds
4 years ago
timokoesters
cd55220a75
fix: room directory duplicates
4 years ago
Marcel
062c5521f0
Add displayname and avatar_url endpoints
...
Add PUT and GET /_matrix/client/r0/profile/{userId}/displayname Endpoint
Add PUT and GET /_matrix/client/r0/profile/{userId}/avatar_url Endpoint
Add GET /_matrix/client/r0/profile/{userId} Endpoint
Took 2 hours 16 minutes
4 years ago
timokoesters
11e75e7081
make room directory work
4 years ago
timokoesters
5ac45eac59
public rooms dir
4 years ago
timokoesters
9214a62dde
better room creation
4 years ago
Jonas Platte
38ab7c843e
Update error type of /register route
4 years ago
Jonas Platte
c60402bf0d
Update ruma-client-api
4 years ago
timokoesters
8557278b90
better riot.im support
4 years ago
timokoesters
fdeee7fdb5
More dummy endpoints
4 years ago
timokoesters
215a31c513
Add a few dummy endpoints to make riot progress further
4 years ago
timokoesters
ddcd423e6f
feat: random tokens, sessions, guest usernames and device ids
4 years ago
timokoesters
64223b8812
register login flow
4 years ago
timokoesters
e55a63629c
feat: state event support
4 years ago
timokoesters
10bb96fcf7
feat: room joining, room based /sync responses
4 years ago
timokoesters
4d4cff7120
Allow all kinds of messages in /send
4 years ago
timokoesters
884dc2867d
Move to rocket's async branch
4 years ago
timokoesters
8b8381bcc0
New PduEvent struct
4 years ago
timokoesters
f9cfede2a8
fix: deserialize sync event body
4 years ago
timokoesters
fa3226898c
feat: save pdus
...
PDUs are saved in a pduid -> pdus map. roomid -> pduleaves keeps track
of the leaves of the event graph and eventid -> pduid maps event ids to
pdus.
4 years ago
timokoesters
22cca206ba
Todo: ruma signatures
...
This commit will get force pushed away later
4 years ago
timokoesters
dba6c46667
Use sled::Tree::prefix_search for deviceids
4 years ago
timokoesters
b508b4d1e7
Start work on message events
4 years ago
timokoesters
533260edd8
Add auth
4 years ago
Jonas Platte
1183105f15
Make Endpoint bound work for ruma_wrapper::Ruma
4 years ago
timokoesters
73e04e71d7
Start work on event creation
4 years ago
timokoesters
744e0adfcf
Try to impl auth in ruma_wrapper
4 years ago
timokoesters
34a53ce20a
Better database structure
4 years ago
timokoesters
6d27f15516
More logging
4 years ago
timokoesters
1679da7784
RUST_LOG=info by default
4 years ago
timokoesters
c2c18b4651
feat: database
5 years ago
timokoesters
cd777af41c
feat: simple endpoint handlers
5 years ago
timokoesters
6264628c11
Initial commit
5 years ago