Quentin Gliech
0360427adf
Cleanup revoked tokens instead of expired ones
...
If we continue deleting expired tokens, we might not record whether the
token was used or not, and not know what to do in case of
a double-refresh.
Revoked tokens are safe to delete.
This also reduces the frequency of the cleanup job to once an hour.
2024-12-11 14:15:01 +01:00
Quentin Gliech
2345685b92
Remove the schedule_expression from the database & other fixes
2024-12-06 16:24:26 +01:00
Quentin Gliech
186860b10f
Cron-like recurring jobs
2024-12-06 16:24:26 +01:00
Quentin Gliech
cb07af5008
Allow scheduling jobs in the future
...
Also retries jobs with an exponential backoff.
2024-12-06 16:24:26 +01:00
Quentin Gliech
b2116d86e3
Refactor job processing to wait for them to finish on shutdown
2024-12-06 16:24:26 +01:00
Quentin Gliech
358186187d
Retry failed jobs
2024-12-06 16:24:26 +01:00
Quentin Gliech
5ca023ab51
Decide in each job whether it should retry or not
2024-12-06 16:24:26 +01:00
Quentin Gliech
89856576cb
Actually consume jobs
2024-12-06 16:24:26 +01:00
Quentin Gliech
d9e22f8884
WIP: job consumption
2024-12-06 16:24:26 +01:00
Quentin Gliech
b689554909
Schedule jobs through the new queue
2024-12-06 16:24:26 +01:00
Quentin Gliech
1bcfd3b8f8
Move the jobs types in the queue module
2024-12-06 16:24:26 +01:00
Quentin Gliech
15f589a22a
Graceful shutdown
2024-12-06 16:24:26 +01:00
Quentin Gliech
cdfa42cfa8
Move the worker logic in a struct
2024-12-06 16:24:26 +01:00
Quentin Gliech
19a2d15c9c
Make the worker heartbeat take a worker reference
2024-12-06 16:24:26 +01:00
Quentin Gliech
a80077907b
New job queue: worker registration and leader election
2024-12-06 16:24:26 +01:00
Quentin Gliech
ed4b6c42a7
Remove (C)
2024-09-10 14:28:55 +02:00
Quentin Gliech
f6bb100c0a
License headers change
2024-09-05 13:25:42 +02:00
Quentin Gliech
144de0deb2
storage: freeze the error type on BoxRepository
...
This avoids having to deal with traits bounds everywhere. It also moves
the `boxed()` method to the PgRepository, because it was unnecessary to
keep it on the `Repository` trait
2024-07-26 11:36:55 +02:00
Quentin Gliech
6db455412f
Kill all sessions when deactivating a user
2024-07-16 14:13:11 +02:00
Quentin Gliech
0207495225
Add a way to reactivate users on the homeserver
2024-07-16 13:20:28 +02:00
Quentin Gliech
3eab10672f
Add a lock during syncs of user devices
2024-07-16 09:32:07 +02:00
Quentin Gliech
35c06ac27b
Deprecate the ProvisionDeviceJob and DeleteDeviceJob jobs
2024-07-16 09:32:07 +02:00
Quentin Gliech
11fd3b231a
Don't hold the database connection for too long
2024-07-16 09:32:07 +02:00
Quentin Gliech
bf276289b6
Fully sync the devices with the homeserver
2024-07-16 09:32:07 +02:00
Quentin Gliech
c156a3891e
Actually send emails for recovery
2024-06-28 15:59:21 +02:00
Quentin Gliech
4a60f5d32f
Job to generate codes for all emails in a recovery session
2024-06-28 15:59:21 +02:00
Quentin Gliech
3978acd94e
Fix recently added Clippy lints
...
This also ignores the clippy::blocks_in_conditions lint in two crates,
until tracing gets fixed: https://github.com/tokio-rs/tracing/issues/2876
2024-05-07 07:32:02 +02:00
Quentin Gliech
61a69f5af4
Upgrade chrono and replace deprecated methods usage
2024-03-18 17:26:40 +01:00
Quentin Gliech
b927d330c9
Bump most Rust dependencies
2024-02-02 15:37:05 +01:00
Quentin Gliech
a0f5f3c642
Enable clippy lints on a workspace level
...
This enables a lot more lints than before in some crates, so this fixed a lot of warnings as well.
2023-12-05 17:20:42 +01:00
Quentin Gliech
b2cd8d83f7
templates: translate a lot more stuff
2023-10-05 19:29:23 +02:00
Quentin Gliech
026ce2a30c
mas-tasks: refactor worker building behind a macro
2023-08-03 15:02:40 +02:00
Quentin Gliech
8142cad3d6
Call the homeserver for user deactivation
2023-08-03 14:06:34 +02:00
Quentin Gliech
646b6cc0e3
Properly trace the cleanup-expired-tokens job
2023-08-03 14:06:34 +02:00
Quentin Gliech
ab00002acd
Switch to event-listener for in-process job notifications
2023-07-18 10:33:44 +02:00
Quentin Gliech
ba0f7ea62c
Upgrade all Rust dependencies
...
This includes breaking changes of sqlx 0.7.0
2023-07-17 19:04:06 +02:00
Quentin Gliech
68db56c2a2
Reimplementation of a postgres-backed storage with a shared PG listener
2023-07-17 19:04:06 +02:00
Quentin Gliech
31788a95f2
Save the imported attributes
2023-06-26 17:24:56 +02:00
Quentin Gliech
4181cbc9d5
Refactor the matrix connection logic
...
Also make the display name available through the graphql api
2023-06-16 19:52:39 +02:00
Quentin Gliech
64b3ed8ee0
Remove explicit generics from tasks layers
...
This defines an IdentityLayer<R> which is used to bind the request type
on the service, which helps with type inference.
2023-05-25 18:57:47 +02:00
Quentin Gliech
1993f4cfca
Bump Rust dependencies
2023-05-25 18:15:44 +02:00
Quentin Gliech
3979e9f46a
Update Rust to 1.69.0
2023-04-24 11:42:01 +02:00
Quentin Gliech
08f58db08b
Replace the OTEL-based tracing layer with tracing based layers
2023-04-18 14:45:43 +02:00
Quentin Gliech
2c937bda26
Lint
2023-04-14 10:22:22 +02:00
Quentin Gliech
5b4fee15e7
Upgrade to apalis-0.4.0-alpha.5
2023-04-14 10:22:22 +02:00
Quentin Gliech
1974786209
Proactively provision devices & delete them when using the compat Matrix API
2023-04-14 10:22:22 +02:00
Quentin Gliech
8a2be43fe7
Proactively provision users on registration & sync threepids
2023-04-14 10:22:22 +02:00
Quentin Gliech
169d7ce6a2
Extract the job tracing span logic to a layer
2023-04-14 10:22:22 +02:00
Quentin Gliech
f4fff72b22
Properly propagate trace contexts
...
This also fixes a long-running issue where the OTEL context was not properly set in the tracing spans.
2023-04-14 10:22:22 +02:00
Quentin Gliech
1f748f7d1e
Schedule jobs through the repository
2023-04-14 10:22:22 +02:00