strawberry
cd3e7394bf
nix: support pushing to conduwuit.cachix.org
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-16 13:16:51 -04:00
strawberry
a543bec1a5
ci: add conduwuit cachix nix binary cache
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-16 13:16:51 -04:00
strawberry
a589a34d15
ci: unify/simplify documentation and ci nix steps
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-16 13:16:51 -04:00
strawberry
4312ac91c1
ci: set NIX_CONFIG for documentation workflow too
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-16 13:16:51 -04:00
strawberry
e83b426caf
ci: set SOURCE_DATE_EPOCH for at least debian pkgs
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-16 13:16:51 -04:00
strawberry
cad1d34611
ci: disable detsys telemetry, use our binary cache URL as upstream
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-16 13:16:51 -04:00
strawberry
ce4517269b
ci: output complement diff results to summary again
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-16 13:16:51 -04:00
strawberry
169617ab87
ci: remove erroneous DIRENV_DEVSHELL
...
engage already sets `DIRENV_DEVSHELL` as necessary
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-16 13:16:51 -04:00
strawberry
3596fe0e18
ci: dont let renovate publish docker images
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-16 13:16:51 -04:00
strawberry
03c04ce0a1
dont allow "remote admins" to run public escaped cmds on behalf of others
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-14 23:46:07 -04:00
strawberry
d0069cc100
log out any sessions when the server emergency password is unset
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-12 14:04:47 -04:00
strawberry
8fff7ea706
cleanup+refactor admin room alias and server account accessing to globals
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-12 14:04:47 -04:00
strawberry
d5677b6ae7
bump cargo.lock due to yanked httparse
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-11 20:18:28 -04:00
strawberry
01a77f8a71
add replaces_state and prev_sender in unsigned for membership changes
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-11 13:03:32 -04:00
strawberry
ea03a50e21
remove pfps/avatars and display names upon deactivation
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-11 01:19:18 -04:00
strawberry
25d44cad31
slightly dedupe pfp/displayname updates, update blurhash in PDUs too
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-11 01:19:18 -04:00
strawberry
91519959ed
mark account as deactivated before leaving rooms
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-11 01:19:18 -04:00
strawberry
2e31bcc213
use our fork of axum-server instead
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-11 01:19:18 -04:00
strawberry
305dfc3b42
adminroom: cmds to view room topic and room members
...
this will be extended more
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 23:38:03 -04:00
strawberry
65fbb80145
adminroom: leave all rooms by default on manual deactivations
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 21:14:18 -04:00
strawberry
f1d90e5df6
log client/remote IP address on various routes tracing calls
...
this uses InsecureClientIp as this is purely for informational
and logging purposes
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 21:04:51 -04:00
strawberry
74b29ce067
adminroom: improved room list outputs, add counts
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
0e7c3cb338
adminroom: simplify codeblock checks
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
14a3471fcb
adminroom: fix function typo
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
c834e86e67
adminroom: user cmds to put/get/delete room account data
...
primarily useful for inserting `m.server_notice` user account data
onto the admin room
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
b4f0a8a8b5
adminroom: clean up and optimise user commands
...
`deactivate-all` was terrible and incredibly inefficient
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
9bb90213e1
adminroom: add user ID parsing utils
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
fcdf1463ef
refactor get_room_topic into 1 single function
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
88d038ffec
refactor getting room's canonical alias into 1 function
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
4b4c0952a2
refactor guest_can_join into 1 single function
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
016270b33b
adminroom: add server_in_room state cache accessor
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
d2063013b4
adminroom: add various state_cache db accessors
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
03ba9bde29
admin cmd to force download and use a server's room state
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
1287a86c05
client-api: export validate_and_add_event_id
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 19:45:04 -04:00
strawberry
8210e8c42e
slightly adjust sliding sync code for ruma bump
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 17:20:59 -04:00
strawberry
adf0bfd894
bump ruma
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 16:57:44 -04:00
strawberry
6b843ec4dd
switch to patch/fork of axum-server to fix shutdown hangs
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 16:55:40 -04:00
strawberry
ac02078395
bump cargo.lock, add tracing feature to axum-extra
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 16:55:40 -04:00
strawberry
5bfb62e979
Revert "update complement results"
...
This reverts commit 9a3c52aa75 .
2024-06-10 15:38:20 -04:00
strawberry
cb03654dc1
fix broken federated room invites/joins
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-10 14:53:26 -04:00
strawberry
9a3c52aa75
update complement results
...
they seem to be failures out of
our control (?)
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-09 12:05:30 -04:00
strawberry
ccf9f95cc9
retroactively fix bad data in roomuserid_joined, remove pointless prefix scans
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-09 03:55:04 -04:00
strawberry
0524e6ed52
remove unnecessary active_local_joined_users_in_room state_cache accessor
...
the underlying bug has been fixed
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-08 17:32:04 -04:00
strawberry
7f5b59afbb
add conduwuit-specific db migration fixing double split db entries
...
for a few months now we accidentally had double 0xFF splits being
inserted into `roomuserid_joined` cf when membership counts and such
are being updated.
this is a conduwuit-specific db migration and does NOT break conduit
compatibility.
`fix_bad_double_separator_in_state_cache`
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-08 16:58:24 -04:00
strawberry
ab5db37851
fix bad double split insert on roomuserid_joined cf
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-08 16:57:48 -04:00
strawberry
c0c7f23a05
services(timeline): use self instead of services()
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
14ec41c211
services(state_cache): use self instead of services()
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
2230bc7339
services(state): use self instead of services()
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
0ebabba971
services(pdu_metadata): use self instead of services()
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
3ed561cb31
service(globals): use self instead of services()
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
a061644b2d
service(event_handler): use self instead of services()
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
82ac6b01b2
service(auth_chain): use self instead of services()
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
97ddb2ce87
bump conduwuit to version 0.4.2
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
a04ff7d4af
fix(fed): dont reject /state_ids/ on world readable rooms
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
10dfbf6420
fix(fed): dont reject /state/ on world readable rooms
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
d10bc67c9d
fix(fed): dont reject /event_auth/ on world readable rooms
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
197a02bf8d
fix(fed): dont reject /event/ on world readable rooms
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
8103bd7310
fix(fed): dont reject /backfill/ on world readable rooms
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
81487e3f07
fix(fed): dont reject /get_missing_events on world readable rooms
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
bfbb29dded
add is_world_readable state_accessor func, use self instead of services()
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:10:00 -04:00
strawberry
1cc7cf54a7
add config option to allow guests to access TURN server
...
`turn_allow_guests`
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:09:59 -04:00
strawberry
40e4019f7f
add missing TURN example config options
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-07 15:09:59 -04:00
strawberry
8428f43c78
add legacy element hack for UIAA using invalid user field
...
see:
- https://github.com/girlbossceo/ruwuma/commit/e9302a955614429ca969eb4c7f561fc87a4f6f15
- https://github.com/element-hq/element-android/issues/8043
- https://github.com/element-hq/element-ios/issues/7405
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-06 10:57:00 -04:00
strawberry
38238c309f
appservices: remove unnecessary services() call for self
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-05 18:18:08 -04:00
strawberry
0857fe7907
abstract+add more "users in room" accessors, check membership state on active_local_joined_users_in_room
...
`roomuserid_joined` cf seems unreliable, so in the mean time we need to check
membership state (or maybe this is a more reliable check anyways)
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-05 18:18:08 -04:00
strawberry
c738c119f8
delete unnecessary real_users_cache, fix overwriting push_target iter, add proper function for getting local active users in room
...
this `real_users_cache` cache seems weird, and i have no idea what
prompted its creation upstream. perhaps they did this because
sqlite was very slow and their rocksdb setup is very poor, so
a "solution" was to stick member counts in memory.
slow iterators, scanning, etc do not apply to conduwuit where
our rocksdb is extremely tuned, and i seriously doubt something
like this would have any real world net-positive performance impact.
also for some reason, there is suspicious logic where we
overwrite the entire push target collection.
both of these things could be a potential cause for receiving
notifications in rooms we've left.
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-05 18:18:08 -04:00
strawberry
c1227340b3
update complement results
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-05 18:17:46 -04:00
strawberry
bf10ff65a4
media: ignore Content-Type params, use binary_search
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-05 17:28:51 -04:00
strawberry
b781771a9b
media: drop Content-Type detection support
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-05 16:33:53 -04:00
strawberry
df8ba04e31
media: trust client Content-Type again
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-05 16:33:53 -04:00
strawberry
19926ba00d
sort ALLOWED_INLINE_CONTENT_TYPES
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-05 16:33:53 -04:00
strawberry
893cc50570
csp: set form-action 'none'
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-05 16:33:53 -04:00
strawberry
c9fbbdce1c
csp: remove unusual directives, slight security improvement
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-05 02:50:44 -04:00
strawberry
919735b4ce
remove usages of &String and &Owned[..]
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 14:17:42 -04:00
strawberry
2e83e56a07
remove deleted config options and update address example option
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 14:17:42 -04:00
strawberry
ff7dfec74c
slightly cleanup update check
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 14:17:42 -04:00
strawberry
84290bd668
update deps, remove unnecessary zstd crate, pin rust-rocksdb rev
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 14:17:32 -04:00
strawberry
b29a8791de
admincmd: leave all rooms if deactivating all users with --force
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:28 -04:00
strawberry
83220b43a2
use saturating_add and vec with_capacity in even more places
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:28 -04:00
strawberry
4ea7af5780
ci(engage): use all-features devshell for cargo doc / rustdoc --all-features
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:28 -04:00
strawberry
79fb8091dc
ci(engage): use all-features direnv devshell for clippy/all
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:28 -04:00
strawberry
f6fa2a4f65
use swap_remove instead of remove in a few places
...
`swap_remove` is faster if we don't care about the order (O(1))
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:28 -04:00
strawberry
b63937af0b
ci(engage): add cargo test default, use all-features devshell for cargo test --all-features
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:28 -04:00
strawberry
3c4e325036
nix(bin): cache default devshell on top of all-features devshell
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:28 -04:00
strawberry
023fb41c49
load .env file before initializing flake to use DIRENV_DEVSHELL in .env
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:28 -04:00
strawberry
9a5f1dac57
drop unnecessarily verbose get_alias_helper logging
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:28 -04:00
strawberry
173ff26eb6
disable URL previews by default upon admin room creation
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:28 -04:00
strawberry
45e3fdba69
admin room: add get-latest-pdu and get-first-pdu commands
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-03 00:10:24 -04:00
strawberry
9f359e0550
make resolve_state public to resolve new forced compressed room state
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
ffdf47d1ea
add latest_pdu_in_room timeline function
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
1af65e695d
media: return application/octet-stream if no content-type was provided
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
b1886583d9
csp: fix typo, add base-uri none
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
f11103b43b
media: check detected content-type against MSC2702
...
only return `inline` if the detected content-type is an allowed
inline content-type as defined by MSC2702
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
9b096cc67b
fix: check if you've left the room before forgetting it
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
1ac72ab914
init a few state hashmaps using with_capacity
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
f0533e07ef
fed: remove unnecessary mutables, use with_capacity in couple more places
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
68f42f5a2f
fed: relax read receipt EDU check
...
so in theory: guest users, peaking over federation,
and world readable rooms should be allowed to send
read receipts even if they're not joined.
relaxing this check to only allow the read receipt if
the server has at least 1 member in the room makes
some of this still work
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
884cbab135
ci: comment out hardened_malloc clippy check for now
...
i need to either fix static linking, or just make it
dynamic always (but then kinda useless idk)
https://gitlab.com/conduwuit/conduwuit/-/jobs/6953419673#L3155
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
4aead5de7a
reflax a couple restrictions on custom room IDs and aliases
...
🙃
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00
strawberry
aef25ea1f7
enable tracing feature for axum
...
Signed-off-by: strawberry <strawberry@puppygock.gay >
2024-06-02 23:53:31 -04:00