Commit graph

152 commits

Author SHA1 Message Date
Neil Alexander f980ff267d
Drop primary keys in favour of new indices 2022-11-10 10:06:37 +00:00
Neil Alexander 99ed784360
Tweak login 2022-11-09 15:00:14 +00:00
Neil Alexander d9ab350ecf
Hmm 2022-11-08 15:01:55 +00:00
Neil Alexander 40122b5423
Separate migrations 2022-11-08 14:27:23 +00:00
Neil Alexander d27bcca3e9
Tweak migrations again 2022-11-08 13:37:47 +00:00
Neil Alexander 32127f4f1c
Tweak migrations 2022-11-08 13:11:37 +00:00
Neil Alexander 786f008607
Try that again 2022-11-08 10:27:01 +00:00
Neil Alexander 196839ebf4
Fix wrong server name reference 2022-11-08 09:24:08 +00:00
Neil Alexander a32982cb7f
Fix some more things 2022-11-07 16:52:28 +00:00
Neil Alexander a46bf9878b
Fix some bugs 2022-11-07 16:06:37 +00:00
Neil Alexander be2f90f0b8
OpenID 2022-11-07 16:01:12 +00:00
Neil Alexander 62dd0afc0b
Three PID 2022-11-07 15:29:51 +00:00
Neil Alexander e36decf025
Fix another bug 2022-11-07 15:11:46 +00:00
Neil Alexander 4998e0757d
Notifications 2022-11-07 15:02:42 +00:00
Neil Alexander 6ea580d9c9
Fix some bugs 2022-11-07 14:15:43 +00:00
Neil Alexander c72c58dab9
Pushers 2022-11-07 13:22:35 +00:00
Neil Alexander 76ac6dbdf1
Profiles tables 2022-11-07 13:04:55 +00:00
Neil Alexander 2e74be1bf2
Clean up some logging 2022-11-07 12:07:30 +00:00
Neil Alexander 03fc5fd0ea
what is going on 2022-11-07 11:11:18 +00:00
Neil Alexander 3b816f306e
Migration tweaks 2022-11-07 10:22:13 +00:00
Neil Alexander d058e052fc
Devices table 2022-11-07 09:30:26 +00:00
Neil Alexander b01510c49a
Merge branch 'main' into neilalexander/vhostinguserapi 2022-11-07 09:11:28 +00:00
Till c125203eb6
Handle m.room.tombstone events in the UserAPI (#2864)
Fixes #2863 and makes 
```
/upgrade preserves direct room state
local user has tags copied to the new room
remote user has tags copied to the new room
```
pass.
2022-11-07 09:47:18 +01:00
Neil Alexander da7f2a7047
More stuff 2022-11-04 15:11:28 +00:00
Neil Alexander a0cc4c806c
Account tables 2022-11-04 12:56:33 +00:00
Neil Alexander d1c61f5f95
Account data 2022-11-04 12:09:49 +00:00
Neil Alexander 7fd2c10975
Add server_name columns 2022-11-04 11:09:43 +00:00
Till 86b25a6337
Add message stats to reporting (#2748)
Since we're now listening on the `OutputRoomEvent` stream, we are able
to store messages stats.
2022-11-02 10:18:11 +00:00
Till Faelligen 869bf4d0ac
Fix flakey stats tests 2022-11-01 08:39:16 +01:00
Neil Alexander f6dea712d2
Initial support for multiple server names (#2829)
This PR is the first step towards virtual hosting by laying the
groundwork for multiple server names being configured.
2022-10-26 12:59:19 +01:00
Neboer 2a4c7f45b3
Add support for config "auto_join_rooms" (#2823)
Add support for config "auto_join_rooms". Now new accounts can join the
rooms in config file automatically.

### Pull Request Checklist

<!-- Please read
https://matrix-org.github.io/dendrite/development/contributing before
submitting your pull request -->

* [x] I have justified why this PR doesn't need tests.
* [x] Pull request includes a [sign off below using a legally
identifiable
name](https://matrix-org.github.io/dendrite/development/contributing#sign-off)

Signed-off-by: `Rubin Poster <rubinposter@gmail.com>`
2022-10-26 11:04:53 +02:00
Till e57b301722
Set display_name and/or avatar_url for server notices (#2820)
This should fix #2815 by making sure we actually set the `display_name`
and/or `avatar_url` and create the needed membership event.
To avoid creating a new membership event when starting Dendrite,
`SetAvatarURL` and `SetDisplayName` now return a `Changed` value, which
also makes the regular endpoints idempotent.
2022-10-21 10:48:25 +02:00
Neil Alexander 73e02463cf
Allow m.read.private to clear notifications (#2811)
Otherwise if a user switches to private read receipts, they may not be
able to clear notification counts.
2022-10-21 09:19:52 +01:00
Neil Alexander 3aa92efaa3
Namespace user API tables (#2806)
This migrates all the various user API tables, indices and sequences to
be `userapi_`-namespaced, rather than the mess they are all now.
2022-10-18 15:59:08 +01:00
Till Faelligen fb44e33909
Relax test a bit 2022-10-14 10:37:04 +02:00
Neil Alexander fb6cb2dbcb
Tweak GetAccountByPassword more 2022-10-10 11:14:16 +01:00
Neil Alexander 04bab14290
Add regression test for 980fa55846 2022-10-10 10:45:15 +01:00
Neil Alexander 980fa55846
Stronger passwordless account checks (fixes #2780) 2022-10-10 10:39:29 +01:00
Till 8c0c3441d8
Add RoomEventType nats.Header to avoid unneeded unmarshalling (#2765) 2022-10-05 12:12:42 +02:00
Till Faelligen 3617d5a0ff
Remove SendAccountData, since InputAccountData is already doing that 2022-09-30 17:31:41 +02:00
Till 249b32c4f3
Refactor notifications (#2688)
This PR changes the handling of notifications
- removes the `StreamEvent` and `ReadUpdate` stream
- listens on the `OutputRoomEvent` stream in the UserAPI to inform the
SyncAPI about unread notifications
- listens on the `OutputReceiptEvent` stream in the UserAPI to set
receipts/update notifications
- sets the `read_markers` directly from within the internal UserAPI

Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2022-09-27 15:01:34 +02:00
Neil Alexander 3e87096a21
Use TxStmt in SQLite pusher table 2022-09-26 09:54:54 +01:00
Till Faelligen 3c416517b0
Fix possible "Database is locked" issue 2022-09-26 10:45:35 +02:00
Neil Alexander 34e1dc210b
Use database writer in user API DeleteOldNotifications 2022-09-09 12:59:28 +01:00
Till 64472d9aab
Update getting pushrules, add tests, tweak pushrules (#2705)
This PR
- adds tests for `evaluatePushrules`
- removes the need for the UserAPI on the `OutputStreamEventConsumer`
(for easier testing)
- adds a method to get the pushrules from the database
- adds a new default pushrule for `m.reaction` events (and some other
tweaks)
2022-09-09 13:56:33 +02:00
Neil Alexander ad6b902b84
Refactor appservices component (#2687)
This PR refactors the app services component. It makes the following changes:

* Each appservice now gets its own NATS JetStream consumer
* The appservice database is now removed entirely, since we just use JetStream as a data source instead
* The entire component is now much simpler and we deleted lots of lines of code 💅

The result is that it should be much lighter and hopefully much more performant.
2022-09-01 09:20:40 +01:00
Neil Alexander 175f65407a
Allow batching in JetStreamConsumer (#2686)
This allows us to receive more than one message from NATS at a time if we want.
2022-08-31 12:21:56 +01:00
Till 93a6e2f4d3
Set the notification count when sending push notifications (#2683) 2022-08-30 14:54:57 +02:00
Till 48600d5540
Use /admin/v1/register in create-account (#2484)
* Get all account data on CompleteSync

* Revert "Get all account data on CompleteSync"

This reverts commit 44a3e566d8.

* Use /_synapse/admin/v1/register to create account

* Linting

* Linter again :)

* Update docs

* Use HTTP API to reset password, add option to User API `PerformPasswordUpdate` to invalidate sessions

* Fix routing name

* Tell me more about what went wrong

* Deprecate the `-reset-password` flag, document the new API

Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2022-08-12 12:00:07 +01:00
Neil Alexander c45d0936b5
Generic-based internal HTTP API (#2626)
* Generic-based internal HTTP API (tested out on a few endpoints in the federation API)

* Add `PerformInvite`

* More tweaks

* Fix metric name

* Fix LookupStateIDs

* Lots of changes to clients

* Some serverside stuff

* Some error handling

* Use paths as metric names

* Revert "Use paths as metric names"

This reverts commit a9323a6a34.

* Namespace metric names

* Remove duplicate entry

* Remove another duplicate entry

* Tweak error handling

* Some more tweaks

* Update error behaviour

* Some more error tweaking

* Fix API path for `PerformDeleteKeys`

* Fix another path

* Tweak federation client proxying

* Fix another path

* Don't return typed nils

* Some more tweaks, not that it makes any difference

* Tweak federation client proxying

* Maybe fix the key backup test
2022-08-11 15:29:33 +01:00