Commit Graph

127 Commits (f5273f7eb11c00e84e3ccd30cc4d5485d7ff5e10)

Author SHA1 Message Date
Devin Ragotzy 48601142f8 Use auth_cache to avoid db, save state for every event when joining 2021-02-23 17:21:01 -05:00
Devin Ragotzy 74d530ae0e Address review issues, fix forward extremity calc
Keep track of all prev_events since if we know that an event is a
prev_event it is referenced and does not qualify as a forward extremity.
2021-02-23 17:21:01 -05:00
Devin Ragotzy 64374b4679 Use eventId when saving outliers 2021-02-23 17:21:01 -05:00
Devin Ragotzy 6661de50ab Fix and integrate outlier tree, build forks after adding event to DB 2021-02-23 17:21:01 -05:00
Devin Ragotzy 6fd3e1d1dd Append state event that pass resolution to DB, update to tokio 1.1 2021-02-23 17:21:01 -05:00
Devin Ragotzy 4cf530c55b Abstract event validation/fetching, add outlier and signing key DB trees
Fixed the miss named commented out keys in conduit-example.toml.
2021-02-09 15:24:09 -05:00
Timo Kösters d49911c5e0
Add 'm.login.token' authentication 2021-02-07 17:38:45 +01:00
Timo Kösters ea1e4625d1
fix: default config options 2021-02-07 13:20:00 +01:00
Timo Kösters 6924dfc8ea
improvement: better appservice compatibility and optimizations 2021-02-06 15:28:30 +01:00
Devin Ragotzy 2d69e81699 WIP: send out push notification, impl pusher routes
It seems in order to test this I may also have to impl the email 3pid
route? I need to call the set_pusher route somehow.
2021-01-29 21:48:09 -05:00
Devin Ragotzy 56b816a2be Fix and integrate outlier tree, build forks after adding event to DB 2021-01-29 21:45:33 -05:00
Devin Ragotzy cd0c5c0566 Append state event that pass resolution to DB, update to tokio 1.1 2021-01-29 11:20:33 -05:00
Devin Ragotzy 851eb555b6 Abstract event validation/fetching, add outlier and signing key DB trees
Fixed the miss named commented out keys in conduit-example.toml.
2021-01-14 21:32:22 -05:00
Timo Kösters b4818716b8
improvement: better deploy guide 2021-01-01 22:21:05 +01:00
Timo Kösters 85364a9c27
improvement: change federation_enabled to federation_disabled
This enables federation by default
2021-01-01 10:52:43 +01:00
Timo Kösters edfd3c1f34
improvement: better config, better logs 2020-12-31 21:07:55 +01:00
Timo Kösters 6606e41dde
feat: improved state store 2020-12-20 13:34:11 +01:00
Timo Kösters 6e5b35ea92
feat: implement appservices
this also reverts some stateres changes
2020-12-08 12:59:20 +01:00
Timo Kösters d62f17a91a
improvement: cache actual destination 2020-12-06 11:05:51 +01:00
Timo Kösters 45086b54b3
improvement: upgrade dependencies, fix timeline reload bug 2020-12-05 21:04:34 +01:00
Timo Kösters 6e36081573
improvement: more logging 2020-12-05 17:35:00 +01:00
Timo Kösters 9439f2c183
feat: send logs into admin room
Log entries will automatically be deduplicated, so a message won't be
sent if the same line has already been sent in the last 30 mins
2020-12-05 17:34:58 +01:00
Timo Kösters 9f8cffcd22
Admin room improvements 2020-11-09 12:21:57 +01:00
Timo Kösters 2f5df4aac9
improvement: more reliable federation sending 2020-10-27 20:26:27 +01:00
Timo Kösters 6b3934e31d
feat: configurable cache capacity 2020-10-23 14:38:12 +02:00
Timo Kösters 6dbe195695
improvement: flush after every request that manipulates the db 2020-10-23 14:38:07 +02:00
Timo Kösters b7ab57897b
fix: sending slowness 2020-09-15 16:14:59 +02:00
Timo Kösters f7816b11de
feat: send messages over federation 2020-09-15 08:17:06 +02:00
Timo Kösters e6b1f54857
Merge remote-tracking branch 'origin/master' into federation 2020-09-12 22:23:54 +02:00
Timo Kösters 12a8c9badd
fix: join rooms over federation 2020-09-12 21:30:07 +02:00
Faelar df55e8ed0b
Add room upgrade. 2020-08-31 12:01:41 +02:00
Timo 4954df3cc3
feat: handle txn ids 2020-08-25 21:33:44 +02:00
Timo 33215d6099
fix: send notification count updates when private read receipts change 2020-08-24 10:46:20 +02:00
Devin Ragotzy d73c6aa8ad Add roomid_statehash tree, clean up review issues 2020-08-23 16:43:21 -04:00
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 804d097a18
fix: wake up /sync for typing events 2020-08-23 16:14:10 +02:00
timokoesters e457e19088
feat: search pdus 2020-08-23 16:14:08 +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
timokoesters e0d0fb4703
fix: only send device_one_time_keys_count when there are updates 2020-07-29 20:44:06 +02:00
timokoesters d891bbb5dc
improve: presence 2020-07-29 13:05:38 +02:00
timokoesters 489cbc0a93
refactor: use <_> instead of <_parameter_name> 2020-07-29 12:59:36 +02:00
timokoesters a49a572d76
feat: cross-signing 2020-06-26 15:16:15 +02:00
timokoesters 2368a90584
refactor: better error handling 2020-06-11 13:14:35 +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
timokoesters d404f902bf
fix: send presence too often 2020-06-04 22:36:48 +02:00
timokoesters 168f2281fd
improvement: bundle typing events and only send on changes
Fixes #67 and #49
2020-06-04 11:17:36 +02:00
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>
2020-06-03 13:41:30 +02:00
timokoesters 4e507ef706
feat: room visibility and aliases 2020-05-31 09:46:11 +02:00
timokoesters 821c608c6a
feat: media 2020-05-18 22:50:42 +02:00
timokoesters 42ae433b25
fix: send devicekeyupdate users in /sync 2020-05-18 12:46:06 +02:00
timokoesters 7fc71b3968
feat: end to end encryption 2020-05-17 19:56:40 +02:00
Rudi Floren 00a9424719
feat: sytests 2020-05-11 14:44:23 +02:00
timokoesters 1dbde0e1c1
improvement: add option to get device id from token 2020-05-10 18:30:12 +02:00
timokoesters ee0d6940bd
feat: presence updates 2020-05-09 21:47:09 +02:00
timokoesters 551308e9a8
Update dependencies and send displayname updates again 2020-05-08 21:13:52 +02:00
timokoesters 8f67c01efd
refactor: split database into multiple files, more error handling, cleaner code 2020-05-03 21:44:48 +02:00
timokoesters b02c568941
feat: notifications, simple permission systems 2020-05-01 20:28:13 +02:00
timokoesters 169dbe6c37
fix: send full state after joining a room 2020-04-29 12:19:09 +02:00
timokoesters b0d9ccdb2d
Signing, basis for federation 2020-04-29 10:27:38 +02:00
timokoesters 80ddf80f17
work 2020-04-29 10:27:31 +02:00
timokoesters abcce95dd8
feat: invites, better public room dir, user search 2020-04-14 13:59:25 +02:00
timokoesters 3debb6203c
feat: handle typing events 2020-04-12 21:12:50 +02:00
timokoesters 3b9cadeec2
feat: read receipts 2020-04-11 23:57:56 +02:00
timokoesters ab8c2f1e5e
Rename pduid_pdus to pduid_pdu 2020-04-11 09:35:06 +02:00
timokoesters 040296c711
Add test support and impl dummy /read_markers 2020-04-10 13:36:57 +02:00
timo 3f2bf208a9
Merge pull request 'Add displayname and avatar_url endpoints' (#5) from MTRNord/matrixserver:accountdata into master 2020-04-09 21:26:57 +02:00
Marcel 49fe5e3271 Rename userid_avatar_url to userid_avatarurl and fix debug print
Run cargo fmt

Took 5 minutes
2020-04-09 21:01:39 +02:00
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
2020-04-09 20:53:27 +02:00
timokoesters cd55220a75
fix: room directory duplicates 2020-04-09 19:39:06 +02:00
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
2020-04-09 18:49:27 +02:00
timokoesters 10bb96fcf7
feat: room joining, room based /sync responses 2020-04-06 13:52:46 +02:00
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.
2020-04-03 17:58:38 +02:00
timokoesters dba6c46667
Use sled::Tree::prefix_search for deviceids 2020-03-30 13:46:18 +02:00