Lauris
f389909a23
fix(auth): sign session cookie store with sessionSecret, not clientId
...
cookie-parser was initialized with settings.clientId (the Plex client
UUID), but express-session signs connect.sid with settings.sessionSecret.
The secrets differ, so cookie-parser's signature check on connect.sid
fails, the cookie is dropped from req.cookies, and the OpenAPI validator
rejects every authenticated request with "cookie 'connect.sid' required"
even though the browser is sending it correctly.
This also matches the signing secret used by the OIDC code-verifier and
state cookies that are stored via res.cookie(..., {signed: true}), which
read back through req.signedCookies during the callback.
2026-06-29 15:49:40 -04:00
Michael Thomas
93b8a59a60
fix: explicitly set sameSite: strict for OIDC correlation cookies
2026-06-29 15:49:40 -04:00
Michael Thomas
66dbf7df0f
fix: normalize email addresses from IDP before lookup / storage
2026-06-29 15:49:40 -04:00
Michael Thomas
3f0f7ec66e
fix: only count active OIDC providers as a fallback sign-in method
2026-06-29 15:49:40 -04:00
Michael Thomas
f1b4cf782e
fix: ensure that OIDC correlation cookies are present in callback
2026-06-29 15:49:40 -04:00
Michael Thomas
3d6acd721e
fix(auth): always send state regardless of PKCE support
...
This improves CSRF protection somewhat, and also improves compatibilty
with Authelia and Authentik, which both have strange handling of the
`state` parameter either beyond or non-compliant with the specification.
2026-06-29 15:49:40 -04:00
Michael Thomas
6127da571f
fix(user): filter linkedAccounts from user entity
2026-06-29 15:49:40 -04:00
Michael Thomas
f09d65a49d
test: add cookie secret to express app for auth tests
2026-06-29 15:49:40 -04:00
Michael Thomas
5712d0f50a
test: ensure test runner does not hang
2026-06-29 15:49:40 -04:00
Michael Thomas
b727361c0e
fix: update unlink account endpoint guards to match client-side logic
2026-06-29 15:49:39 -04:00
Michael Thomas
31ecc927ef
style: error condition null check -> truthiness check
2026-06-29 15:49:39 -04:00
Michael Thomas
1e54f15abe
refactor: for new user login, save user and linked account entities in single transaction
2026-06-29 15:49:39 -04:00
Michael Thomas
0f2ec32c87
fix: use signed session cookie to persist state & code_verifier, clear after login
2026-06-29 15:49:39 -04:00
Michael Thomas
8a1bd4d5f5
fix: add indexes and constraints for linked accounts
2026-06-29 15:49:39 -04:00
Michael Thomas
f3b3e207ef
test(auth): add tests for OpenID Connect endpoints
2026-06-29 15:49:39 -04:00
Michael Thomas
e56ff623fa
feat: support login with OpenID Connect
2026-06-29 15:49:39 -04:00
Michael Thomas
61ee8dd00f
feat: support linking OpenID Connect accounts to users
2026-06-29 15:49:39 -04:00
Michael Thomas
ff4867c98c
feat: add OpenID Connect provider settings
2026-06-29 15:49:39 -04:00
fallenbagel
8ad191f42b
fix(proxy): proxy clients built before proxy init ( #3196 )
2026-06-25 01:49:58 +02:00
fallenbagel
ef9edc832f
fix(i18n): fallback to server locale for "Default" user lang in notifs ( #3190 )
2026-06-23 17:07:34 +08:00
Weblate
8d351bce65
chore(i18n): update translations from Weblate
...
Co-authored-by: Kisnov <gabrielmarfil0@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
2026-06-18 17:39:02 +02:00
0xsysr3ll
72536da50e
feat(requests): allow admins to bypass user quota limits ( #2026 )
2026-06-18 12:37:07 +02:00
Weblate
3f3384265e
chore(i18n): update translations from Weblate
...
Co-authored-by: Kisnov <gabrielmarfil0@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: dtalens <dtalens@users.noreply.translate.seerr.dev>
2026-06-16 16:02:25 +02:00
Weblate
6c8527fea3
chore(i18n): update translations from Weblate
...
Co-authored-by: Anatoly Tarasenko <fm.ksbw@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
2026-06-14 14:58:55 +02:00
Weblate
ab26f068f2
chore(i18n): update translations from Weblate
...
Co-authored-by: Daniel G <daniel.guerra.997@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
2026-06-14 01:54:04 +08:00
fallenbagel
784faa9f84
fix: availability sync demotion and orphan season rollup edge cases ( #3148 )
2026-06-12 00:04:36 +02:00
Austin
6e9ba06e88
feat(notifications): add Discord thread ID support ( #3065 )
2026-06-09 10:11:11 +02:00
0xsysr3ll
5f2722da30
feat(api): support userId when creating issues ( #3100 )
2026-06-08 23:34:00 +02:00
Weblate
0a305f6e18
chore(i18n): update translations from Weblate
...
Co-authored-by: Bas <910100490+weblate@proton.me>
Co-authored-by: Weblate <noreply@weblate.org>
2026-06-05 11:22:24 +02:00
0xsysr3ll
b66020128b
fix(email): respect hosts file for SMTP connections ( #3082 )
2026-06-04 19:02:55 +02:00
Weblate
2a249a85ae
chore(i18n): update translations from Weblate
...
Co-authored-by: Marek <mara.pavelka@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
2026-06-04 11:02:59 +02:00
Weblate
73fcfd253f
chore(i18n): update translations from Weblate
...
Co-authored-by: Gökhan GÜRBÜZ <gkhn.gurbuz@hotmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
2026-06-02 10:39:27 +02:00
adis veletanlic
63175f52ce
feat(notifications): support multiple Discord IDs ( #2712 )
2026-06-01 15:00:06 +02:00
fallenbagel
ff88d528e5
fix(request): restore media status correctly when deleting requests ( #3064 )
2026-05-25 22:31:03 +02:00
renovate[bot]
26283c0fe5
chore(deps): update dependency @types/mime to v4 ( #2946 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-26 02:19:35 +08:00
fallenbagel
2588e49ac6
fix(watchlistsync): re-request deleted media from watchlist ( #3072 )
2026-05-25 20:15:04 +02:00
fallenbagel
ee915b93a9
fix(media): clean up watchlist on error card delete ( #3073 )
2026-05-25 20:07:28 +02:00
Gauthier
4ed29cf1c5
fix: update series status to partially available when seasons are missing ( #3044 )
2026-05-25 03:08:56 +08:00
Felix Schneider
a8f147d083
feat(notification): add support for public seerr logo in email ( #3036 )
2026-05-18 11:21:25 +02:00
Gauthier
8759263e12
chore(deps): update dependency Next.js to v16 ( #3003 )
2026-05-13 18:54:35 +02:00
Gauthier
bd27f2de6b
fix(users): correct auth middleware for web push subscription ( #3005 )
2026-05-09 17:18:22 +08:00
Defendi
99f8520f48
fix(plex-watchlist-sync): handle MediaContainer.Video fallback in watchlist sync ( #2992 )
2026-05-08 14:09:50 +02:00
Weblate
788311aa02
chore(i18n): update translations from Weblate
...
Co-authored-by: RobertRvB <Robert_RB@live.nl>
Co-authored-by: Weblate <noreply@weblate.org>
2026-05-08 11:28:32 +02:00
renovate[bot]
de11222a37
chore(deps): update dependency express to v5 ( #2963 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: gauthier-th <mail@gauthierth.fr>
2026-05-08 10:39:33 +02:00
Weblate
656e33fb4a
chore(i18n): update translations from Weblate
...
Co-authored-by: 8emk10 <erikmorten97@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
2026-05-08 06:46:45 +08:00
Burak Emir Sezen
f093c69723
feat(db): add DB_POOL_SIZE environment variable for postgres connection pool ( #2990 )
2026-05-07 22:11:36 +02:00
Blake L.
9b7b50bff6
feat: add plex media ratingKey and ratingKey4k to webhook payload and… ( #1812 )
2026-05-07 02:12:17 +08:00
Fredrik Burmester
15296a03ae
feat: add route to fetch user by jellyfin id ( #2074 )
...
Co-authored-by: gauthier-th <mail@gauthierth.fr>
2026-05-07 02:10:26 +08:00
Gauthier
217fcef34b
chore(deps): remove or replace unused/heavy dependencies to reduce Docker image size ( #2974 )
...
Co-authored-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
2026-05-05 14:54:26 +02:00
fallenbagel
9c34864ce6
fix(availability-sync): detect deleted seasons when media server retains empty season metadata ( #2850 )
2026-05-03 17:22:55 +02:00