Commit Graph

62 Commits

Author SHA1 Message Date
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