Move SQL queries out of API authentication middleware#2857
Merged
Conversation
…ry and include util file
…ert fields to String
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2857 +/- ##
==========================================
+ Coverage 91.32% 91.38% +0.05%
==========================================
Files 378 379 +1
Lines 17541 17646 +105
Branches 1987 1987
==========================================
+ Hits 16020 16125 +105
+ Misses 1424 1423 -1
- Partials 97 98 +1 ☔ View full report in Codecov by Sentry. |
Contributor
|
The session repo needs to be added to sigrid |
praseodym
reviewed
Feb 5, 2026
praseodym
reviewed
Feb 5, 2026
Contributor
Author
Thanks 😅 added in d343135 |
praseodym
reviewed
Feb 5, 2026
PDF Diff SummaryComparing against base branch:
|
stacktraceghost
approved these changes
Feb 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extract a
session_repofrom the authentication middleware, in six acts:sessionmodule to the repository, because it contains mostly database queriesaxumandcookiefrom the repo, by moving the extractor and the get_cookie() method back to the middlewareAuthenticationErrorwithsqlx::Errorin the repo (and split create and save, actually for the next step)Session::new()toSession::create()and use that in combination withsession_repo::save()instead of thesession_repo::create(), to be able to split the responsibility of calculating session lifetime and saving to the databaseSession::create()and its helpers to the middleware, remove lifetime calculation fromextend_session()RequestSessionData(with cookie and ip address) from the repo by replacing it withSessionIdentifiercontaining stringsThis results in a
session_repothat contains all the database queries for the session, but without any knowledge of axum, cookies, or lifetime calculations.