Jade Ellis
ce73d29855
chore: Fix typos
2025-11-08 20:54:49 +00:00
Ginger
13b7538785
Add support for MSC4155 ( #1013 )
...
[rendered msc here](https://github.com/Johennes/matrix-spec-proposals/blob/johannes/invite-filtering/proposals/4155-invite-filtering.md ). Closes #836 .
Co-authored-by: nexy7574 <git@nexy7574.co.uk>
Reviewed-on: https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1013
Reviewed-by: nex <nex@noreply.forgejo.ellis.link>
Co-authored-by: Ginger <ginger@gingershaped.computer>
Co-committed-by: Ginger <ginger@gingershaped.computer>
2025-09-21 17:03:40 +00:00
nexy7574
0672ce5b88
style: Fix clippy lint errors
2025-09-17 23:54:09 +01:00
Ginger
7f287c7880
fix: Use a database migration to fix corrupted us.cloke.msc4175.tz fields
...
(cherry picked from commit 4a893ce4cc81487bcf324dccefd8184ddef5b215)
2025-09-17 23:14:07 +01:00
Ginger
d6b1055683
fix: Remove needless async marker
2025-09-16 11:30:39 +00:00
Ginger
c9117e6ee4
fix: Fix incorrect deserialization of MSC4133 profile fields
2025-09-16 11:30:39 +00:00
Ginger
e6fd3c970b
fix: Nuke explicit references to the MSC4175 tz profile field
2025-09-16 11:30:39 +00:00
Tom Foster
b5a2e49ae4
fix: Resolve Clippy CI failures from elided lifetime warnings
...
The latest Rust nightly compiler (2025-08-27) introduced the
elided-named-lifetimes lint which causes Clippy CI checks to fail
when an elided lifetime ('_) resolves to a named lifetime that's
already in scope.
This commit fixes the Clippy warnings by:
- Making lifetime relationships explicit where 'a is already in scope
- Keeping elided lifetimes ('_) in functions without explicit
lifetime parameters
- Ensuring proper lifetime handling in the database pool module
Affected files (17 total):
- Database map modules: Handle, Key, and KeyVal references in get,
qry, keys, and stream operations
- Database pool module: into_recv_seek function
This change resolves the CI build failures without changing any
functionality, ensuring the codebase remains compatible with the
latest nightly Clippy checks.
2025-08-28 21:13:19 +01:00
Jade Ellis
0ed691edef
fix: Make builds without LDAP work correctly
2025-08-23 19:59:36 +00:00
RatCornu
c7adbae03f
feat: ldap login
2025-08-23 19:59:36 +00:00
Tom Foster
583cb924f1
refactor: address code review feedback for auth and pagination improvements
...
- Extract duplicated thread/message pagination functions to shared utils module
- Refactor pagination token parsing to use Option combinators instead of defaults
- Split access token generation from assignment for clearer error handling
- Add appservice token collision detection at startup and registration
- Allow appservice re-registration with same token (for config updates)
- Simplify thread relation chunk building using iterator chaining
- Fix saturating_inc edge case in relation queries with explicit filtering
- Add concise comments explaining non-obvious behaviour choices
2025-08-12 05:29:41 +01:00
Tom Foster
d1ebcfaf0b
fix(auth): prevent token collisions and optimise lookups
...
Ensures access tokens are unique across both user and appservice tables to
prevent authentication ambiguity and potential security issues.
Changes:
- On startup, automatically logout any user devices using tokens that
conflict with appservice tokens (resolves in favour of appservices)
and log a warning with affected user/device details
- When creating new user tokens, check for conflicts with appservice tokens
and generate a new token if a collision would occur
- When registering new appservices, reject registration if the token is
already in use by a user device
- Use futures::select_ok to race token lookups concurrently for better
performance (adapted from tuwunel commit 066097a8)
This fix-forward approach resolves existing token collisions on startup
whilst preventing new ones from being created, without breaking existing
valid authentications.
The find_token optimisation is adapted from tuwunel (matrix-construct/tuwunel)
commit 066097a8: "Optimize user and appservice token queries" by Jason Volk.
2025-08-10 17:10:06 +01:00
Jade Ellis
ecc6fda98b
feat: Record metadata about user suspensions
2025-06-29 15:38:01 +00:00
nexy7574
13e17d52e0
style: Remove unnecessary imports (clippy)
2025-06-29 15:38:01 +00:00
nexy7574
d8a27eeb54
fix: Failing open on database errors
...
oops
2025-06-29 15:38:01 +00:00
nexy7574
eb2e3b3bb7
fix: Missing suspensions shouldn't error
...
Turns out copying and pasting the function
above verbatim actually introduces more
problems than it solves!
2025-06-29 15:38:01 +00:00
nexy7574
1ff8af8e9e
style: Remove unneeded statements (clippy)
2025-06-29 15:38:01 +00:00
nexy7574
8791a9b851
fix: Inappropriate empty check
...
I once again, assumed `true` is actually `false`.
2025-06-29 15:38:01 +00:00
nexy7574
fac9e090cd
feat: Add suspension helper to user service
2025-06-29 15:38:01 +00:00
nexy7574
cdf105a24e
Don't serialize the x-key before storing it
...
Co-authored-by: dasha <admin@dimensionproject.net>
2025-04-25 02:18:00 +01:00
June Clementine Strawberry
94b107b42b
add some debug logging and misc cleanup to keys/signatures/upload
...
Signed-off-by: June Clementine Strawberry <june@3.dog>
2025-04-03 16:08:18 -04:00
June Clementine Strawberry
24be579477
add appservice MSC4190 support
...
Signed-off-by: June Clementine Strawberry <june@3.dog>
2025-04-03 12:21:16 -04:00
June Clementine Strawberry
d0c767c23c
fix a few things to make some complement tests pass
...
Signed-off-by: June Clementine Strawberry <june@3.dog>
2025-03-09 01:43:49 -05:00
June Clementine Strawberry
a1e1f40ded
run cargo fix for rust 2024 changes and rustfmt
...
Signed-off-by: June Clementine Strawberry <strawberry@puppygock.gay>
2025-02-23 01:17:45 -05:00
morguldir
8085a1c064
Implement MSC3967, also fixes error when uploading keys in element
...
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Signed-off-by: morguldir <morguldir@protonmail.com>
2025-02-22 16:46:06 +01:00
Jason Volk
5e59ce37c4
snapshot sync results at next_batch upper-bound
...
Signed-off-by: Jason Volk <jason@zemos.net>
2025-02-02 16:30:55 +00:00
Jason Volk
a774afe837
modernize remove_to_device_events
...
Signed-off-by: Jason Volk <jason@zemos.net>
2025-02-02 16:30:55 +00:00
strawberry
5b8464252c
cleanup+fix login get_token code, use db ser/deser instead
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2025-01-17 17:40:53 -05:00
Jade Ellis
2cc6ad8df3
implement /login/get_token (MSC3882)
2025-01-17 17:40:53 -05:00
Jason Volk
77d7e8a3ad
add json array to serde_json::Value db deserialization without Raw
2025-01-02 06:52:32 +00:00
strawberry
72797532b6
fix MSC4133 fields not being returned as original types
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2025-01-01 23:28:01 -05:00
Jason Volk
0a9b6c136f
refactor for ruma identifiers optimizations
...
Signed-off-by: Jason Volk <jason@zemos.net>
2025-01-01 23:28:01 -05:00
strawberry
77e0b76408
apply new rustfmt.toml changes, fix some clippy lints
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-12-15 01:00:41 -05:00
strawberry
0317cc8cc5
rename conduit to conduwuit finally
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-12-14 22:24:45 -05:00
strawberry
1b9c331049
use database::Json() to serialise MSC4133 profile value before insert
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-12-13 11:13:21 -05:00
strawberry
c9bb943a34
mark device list updates when a device is deleted/removed
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-12-11 21:25:40 -05:00
Jason Volk
b77a1eb079
move cork to remove_to_device_events fn
...
add cork around write-heavy database routine called in loop; cleanup
Signed-off-by: Jason Volk <jason@zemos.net>
2024-12-08 07:12:23 +00:00
Jason Volk
58be22e695
fix new lints; clippy::unnecessary-map-or
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-11-29 06:58:45 +00:00
Jason Volk
cc86feded3
bump ruma
...
fixes for key type changes
Signed-off-by: Jason Volk <jason@zemos.net>
2024-11-10 04:33:30 +00:00
Jason Volk
a74461fc9a
split keys_changed for stronger-type overloads
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-26 18:50:29 -04:00
Jason Volk
2ed0c267eb
Refactor for structured insertions
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-26 18:50:29 -04:00
Jason Volk
8258d16a94
re-scheme naming of stream iterator overloads
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-26 18:50:29 -04:00
Jason Volk
57e0a5f65d
additional database stream deserializations for serde_json::from_ elim
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-26 18:50:28 -04:00
Jason Volk
da34b43302
abstract account-data deserializations for serde_json::from_elim
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-26 18:50:28 -04:00
strawberry
4eb7ad79d1
update last_seen_ip and last_seen_ts on updating device metadata
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-10-25 00:38:45 -04:00
strawberry
890ee84f71
dont send read receipts and typing indicators from ignored users
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-10-25 00:38:18 -04:00
Jason Volk
26dcab272d
various cleanup tweaks/fixes
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-25 00:36:30 -04:00
Jason Volk
c569881b08
merge rooms/short Data w/ Service; optimize queries
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-25 00:36:28 -04:00
Jason Volk
5192927a53
split remaining map suites
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-25 00:32:33 -04:00
Jason Volk
4776fe66c4
handle serde_json for deserialized()
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-25 00:32:33 -04:00