Commit Graph

2691 Commits

Author SHA1 Message Date
Rowan Murphy
7f39794116 docs: change comma-separated lists to space-separated
Changed documentation for scopes and required claims lists to correctly reflect source code showing space-separated instead of comma-separated.
preview-OIDC
2025-09-08 14:08:15 -04:00
Michael Thomas
be5ee1e980 fix(userlinkedaccountssettings): use correct button style for dropdown 2025-09-08 14:08:15 -04:00
Puranjay Savar Mattas
ab3c8e4e7e refactor(oidc): remove explanatory comments
Removes unnecessary tutorial-style comments from the OIDC components. The code is now
self-documenting, and these comments added noise without providing additional value. This change
cleans up the code and aligns it with the project's established style.

Addresses https://github.com/michaelhthomas/jellyseerr/pull/4#pullrequestreview-3079128668
2025-09-08 14:08:14 -04:00
Puranjay Savar Mattas
05b0a1fa99 style(oidc): standardize form error display in OIDC modal
Refactors the form in EditOidcModal to display validation errors manually using a `div` instead of
Formik's `<ErrorMessage>` component. This change brings the component's style in line with the
established pattern used in other forms throughout the application, improving code consistency.

Addresses https://github.com/fallenbagel/jellyseerr/pull/1505#discussion_r2195088361
2025-09-08 14:08:14 -04:00
Puranjay Savar Mattas
cfbf7edf7e chore(login): remove unused ErrorCallout component
Deletes the ErrorCallout.tsx file as it is not used anywhere in the codebase. This cleans up dead
code from the project.

Addresses https://github.com/fallenbagel/jellyseerr/pull/1505#discussion_r2195045066
2025-09-08 14:08:14 -04:00
Puranjay Savar Mattas
8f8a4153b6 fix(auth): prevent duplicate user creation on OIDC login
Adds a check to ensure a user with the same email address does not already exist before creating a
new user during an OIDC callback. If a duplicate email is found, the process is aborted with a 409
Conflict error.

Addresses https://github.com/fallenbagel/jellyseerr/pull/1505#discussion_r2195036663
2025-09-08 14:08:14 -04:00
Puranjay Savar Mattas
f4988aba15 refactor(oidc): inline OIDC utility function
Moves the processCallback function from src/utils/oidc.ts directly into the OidcLoginButton.tsx
component where it is used. The now-empty oidc.ts utility file has been removed. This improves code
co-location as the function is only used in a single place.

Addresses https://github.com/fallenbagel/jellyseerr/pull/1505#discussion_r2194982515
2025-09-08 14:08:14 -04:00
Puranjay Savar Mattas
4a3f38fa10 docs(settings): clarify non-OIDC login methods
Updates the user settings documentation to be more generic. Instead of stating users can only sign
in with their email address, the text now correctly states that they can use their username or email
address. This accounts for both local and media server users.

Addresses https://github.com/fallenbagel/jellyseerr/pull/1505#discussion_r2194953503
2025-09-08 14:08:14 -04:00
Puranjay Savar Mattas
67bbc73564 feat(api): refactor fetch calls to axios
Replaces the native fetch() API with axios for all OIDC-related frontend API calls. This improves
consistency with other parts of the codebase and simplifies error handling.

Addresses https://github.com/fallenbagel/jellyseerr/pull/1505#pullrequestreview-3001436908
2025-09-08 14:08:14 -04:00
Michael Thomas
205aa5da92 docs: add OpenID connect documentation 2025-09-08 14:08:14 -04:00
Michael Thomas
27292c02ea fix(LinkedAccounts): update linked accounts to account for new redirect flow 2025-09-08 14:08:14 -04:00
Michael Thomas
80217c70ea fix(login): hide login form when only OIDC login is enabled 2025-09-08 14:08:14 -04:00
Michael Thomas
7d426f0c7e fix(UpdateOidcModal): do not update slug when changing name of existing provider 2025-09-08 14:08:14 -04:00
Michael Thomas
55870fed20 fix: improve error handling, process callback on login page 2025-09-08 14:08:14 -04:00
Michael Thomas
7bd26eebb5 fix: add database migrations 2025-09-08 14:08:13 -04:00
Michael Thomas
d36dcbed7e fix: tweak login buttons to ensure labels fit 2025-09-08 14:08:13 -04:00
Michael Thomas
03d869ca59 feat: add openid connect settings interface 2025-09-08 14:08:13 -04:00
Michael Thomas
51849cd9de feat: add OpenID Connect options to login screen 2025-09-08 14:08:13 -04:00
Michael Thomas
fa7efa31bc feat: basic OpenID Connect support 2025-09-08 14:08:13 -04:00
THOMAS B
4878722030 fix(tvdb): respect display language when fetching metadata (#1889)
* fix(tvdb): respect display language when fetching metadata

* refactor(tvdb): use seasons translation

* refactor(tvdb): limit while loop

* fix(tvdb): fix translation with '-'

* refactor(tvdb): remove logs

* style(tvdb): remove useless logs

* refactor(tvdb): simplify wanted translation condition

* refactor(languages): move AvailableLocale  from context to types
2025-09-08 20:20:21 +08:00
Ishan Jain
479be0daeb feat(notifications): make embedded posters optional (#1364)
* feat(notifications): make images optional

* fix(notifications): added en i18n config

* fix: prettify

* fix(notifications): added embedImage support for ntfy

* fix(frontend): update embedImage on form state change and submission

* fix(locale): updated locale for embedImage

* fix: renamed embedImage to embedPoster
2025-09-08 14:11:31 +02:00
THOMAS B
6245dae3b3 fix(tvdb): return specials seasons (#1894) 2025-09-08 10:49:26 +02:00
Gauthier
d82c6f6222 fix(settings): correct port saving of proxy settings (#1890)
The port of the proxy settings was saved as a string instead of a number, causing the API to throw
an error and making it impossible to save the network settings.
2025-09-04 14:45:42 +02:00
0xsysr3ll
13fe4c890b feat(issue): add issue description preview (#1881)
* feat(issue): add issue description preview

This PR adds a description preview to the issues list page, allowing users to quickly view issue details without navigating to individual issue pages.

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>

* fix(issue): remove unnecessary user join

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>

---------

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
2025-09-04 10:24:08 +02:00
THOMAS B
22b2824441 feat: add tvdb indexer (#899)
* feat(tvdb): get tv seasons/episodes with tvdb

* fix: fix rate limiter index tvdb indexer

* fix(usersettings): remove unused column tvdbtoken

* refactor(tvdb): replace tvdb api by skyhook

* fix: error during get episodes

* fix: error if tmdb poster is null

* refactor: clean tvdb indexer code

* fix: wrong language with tmdb indexer

* style: replace avalaible to available

* style: tvdb.login to tvdb.test

* fix(test): fix  discover test

* fix(test): wrong url tv-details

* test(tvdb): add tvdb tests

* style(tvdb): rename pokemon to correct tv show

* refactor(indexer): remove unused getSeasonIdentifier method

* refactor(settings): replace tvdb object to boolean type

* refactor(tmdb): reduce still path condition

* test(tvdb): change 'use' to 'tvdb' condition check

* fix(tmdb): fix build

fix build after rebase

* fix(build): revert package.json

* fix(tvdb): ensure that seasons contain data

* refactor(swagger): fix /tvdb/test response

* fix(scanner): add tvdb indexer for scanner

* refactor(tvdb): remove skyhook api

* refactor(tvdb): use tvdb api

* fix(tvdb): rename tvdb to medatada

* refactor(medata): add tvdb settings

* refactor(metadata): rewrite metadata settings

* refactor(metadata): refactor metadata routes

* refactor(metadata): remove french comments

* refactor(metadata): refactor tvdb api calls

* style(prettier): run prettier

* fix(scanner): fix jellyfin scanner with tvdb provider

* fix(scanner): fix plex scanner tvdb provider

* style(provider): change provider name in info section

* style(provider): full provider name in select

* style(provider): remove french comment

* fix(tests): fix all cypress tests

* refactor(tvdb): fix apikey

* refactor(tmdb): apply prettier

* refactor(tvdb): remove logger info

* feat(metadata): replace fetch with axios for API calls

* feat(provider): replace indexer by provider

* fix(tests): fix cypress test

* chore: add project-wide apikey for tvdb

* chore: add correct application-wide key

* fix(test): fix test with default provider tmdb anime

* style(cypress): fix anime name variable

* chore(i18n): remove french translation + apply i18n:extract

* style(wording): standardize naming to "Metadata Provider" in UI text

* docs(comments): translate from French to English

* refactor(tvdb): remove unnecessary try/catch block

* feat(i18n): add missing translations

* fix(scanner): correct metadata provider ID from Tmdb to Tvdb

* style(settings): clarify navigation label from "Metadata" to "Metadata Providers"

* style(logs): update error log label from "Metadata" to "MetadataProvider"

* refactor(tvdb): replace indexer by metadata providers

* refactor(settings): remove metadata providers logo

* fix(config): restore missing config/db/.gitkeep file

---------

Co-authored-by: TOomaAh <ubuntu@PC>
Co-authored-by: fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
2025-09-02 22:40:47 +02:00
Gauthier
368ecf8771 fix(dnscaching): display stats for DNS caching (#1858)
* fix(dnscaching): display stats for DNS caching

* fix: add missing translation
2025-08-20 17:32:59 +08:00
Georgy
d3fd5028dc feat: add IMDb rating votes count in tooltip (#1696)
* feat: add IMDb rating votes count in tooltip

* feat: add IMDb rating votes count in tooltip

* feat: add IMDb rating votes count in tooltip
2025-08-19 22:26:42 +02:00
Gauvain
c0fd81a5f0 fix: remove console warning (#1836)
* fix: remove a console warning

* fix: Adds id attribute to select element for accessibility

Fixes label association by adding missing id attribute to the select dropdown, ensuring proper accessibility compliance and screen reader functionality.
2025-08-19 21:49:06 +02:00
0xsysr3ll
af7ceaf7a2 feat(requests): add user's avatar next to Requested/Last Modified by icon (#1750)
* feat(requests): add user's avatar in front of Requested/Last Modified by

* refactor(requests): wrap both the avatar and the username in Link

* fix(requests): remove unnecessary margin between avatar and username
2025-08-20 03:43:51 +08:00
fallenbagel
b4adfd2ffa feat: dns caching manager (#1294)
* feat(dns): implement dns caching

* feat: simple implementation of dnscaching

* feat: dynamic ttl which is revalidated while using stale dns cache

This is done as tmdb ttl is very less like 40 seconds so to make sure
any issues wont be caused due to cached dns (previously we were caching
for 5 minutes no matter what ttl)

* feat(dns): improve DNS cache with multi-strategy fallback system

- multiple DNS resolution strategie
- graceful fallbacks between IPv6 and IPv4 addresses
- network error reporting in fetch fix
- compatibility with cypress testing (I HOPE)

* fix: typos

* feat: dns cache stats in jobs & cache page (and cleanup)

* feat(networksettings): cache dns off by default

* feat: make dnsCache optional and enable-able through network settings

* chore(i18n): extract translation keys

* test(cypress): fix cypress testing

* feat(dnscache): dns cache entries are now flushable

* style(cypress): run prettier

* chore(cypresssettings): git ignore cypress json settings

* chore: ignore cypress/config/settings.json

* fix(dnscache): use entry specific hits and misses not global

* refactor: clean up console logs

* fix(dnscache): fix miss counter

* feat(dnscache): global stats

* chore(i18n): extract translation keys

* refactor: use date-fns for formatting age and remove useless code

* refactor: remove cypress testing options in dnsCacheManager

* refactor: remove console logs

* refactor: removed useless condition when its always truthy

* fix: remove FetchAPI-related code

* fix: remove old ipv4first setting

* refactor: use our own dns-caching package instead

* fix: correct dns-caching module configuration

* fix: correct dns-caching module configuration

* fix: remove useless lru-cache dependency

* fix: update dns-caching to v0.2.0

* fix: add env variable for min/max ttl & update dns-caching

* fix: update dns-caching package

* fix: add force min/max TTL in network settings

* docs: add docs for dns caching

---------

Co-authored-by: Gauthier <mail@gauthierth.fr>
2025-08-20 03:02:21 +08:00
0xsysr3ll
5c1583cf56 fix(UserProfile): handle optional chaining for recentlyWatched data (#1852)
This PR fixes a client-side TypeError in the "Recently Watched" section of user profiles. The issue occurred when recentlyWatched was undefined. The fix adds optional chaining (?.) to prevent the app from crashing.

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
2025-08-19 19:00:09 +02:00
Gauthier
66d4cd63bb docs(notifications): add more documentation for notifications (#1856)
This PR adds more documentation methods for notifications. Most of it is taken from the Overseerr
documentation.
2025-08-20 00:46:04 +08:00
Ludovic Ortega
e8ec3473da chore(helm): bump jellyseerr to 2.7.3 (#1848)
Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
2025-08-14 23:24:09 +02:00
0xsysr3ll
17d4f13afe fix(api): update Plex Watchlist URL (#1847) 2025-08-15 03:57:30 +08:00
0xsysr3ll
3292f11308 fix(MediaRequestSubscriber): use event manager to get fresh media state for MEDIA_AVAILABLE notifications (#1825)
* fix(MediaRequestSubscriber): use event manager to get fresh media state for MEDIA_AVAILABLE notifications

* refactor(MediaRequestSubscriber): streamline media availability notifications
2025-08-10 21:33:06 +02:00
0xsysr3ll
c86ee0ddb1 fix(api): make username field nullable in UserSettings API schema (#1835) 2025-08-06 06:22:21 +08:00
0xsysr3ll
e02ee24f70 fix(media): update delete media file logic to include is4k parameter (#1832)
* fix(media): update delete media file logic to include is4k parameter

* fix(media): revert to MANAGE_REQUESTS permission
2025-08-05 11:42:11 +02:00
0xsysr3ll
ca1686425b fix(blacklist): handle invalid keywords gracefully (#1815)
* fix(blacklist): handle invalid keywords gracefully

* fix(blacklist): only remove keywords on 404 errors

* fix(blacklist): remove non-null assertion and add proper type annotation

* refactor(blacklist): return null instead of 404 for missing keywords

* fix(blacklist): add type annotation for validKeywords

* fix(selector): update type annotation for validKeywords
2025-08-01 11:03:22 +02:00
0xsysr3ll
e52c63164f fix(api): add missing user settings' api docs (#1820)
This PR adds new fields to the UserSettings schema, including username, email, discordId, and various quota limits for movies and TV shows.

It also updates API paths to reference the new UserSettings schema.
2025-07-30 23:44:49 +02:00
Gauthier
e98f31e66c fix(proxy): initialize image proxies after the proxy is set up (#1794)
The ImageProxy for TMDB and TheTVDB were initialized before the proxy settings were set up, so they
were ignoring the proxy settings.

fix #1787
2025-07-24 10:33:53 +02:00
Gauthier
75a7279ea2 fix(proxy): modify the registration of the axios interceptors (#1791)
The previous way of adding Axios interceptors added a new interceptor each time, causing lags after
a while because of all the duplicate interceptors added.

fix #1787
2025-07-20 11:33:16 +02:00
Ludovic Ortega
d53ffca5db chore(helm): bump jellyseerr to 2.7.1 (#1785)
Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
2025-07-15 22:06:29 +02:00
Ludovic Ortega
844b1abad9 fix: allow setting IPv6 as an IP address in hostname field (#1782)
Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
2025-07-15 11:26:30 +00:00
Ludovic Ortega
c88a20f536 chore(deps): upgrade axios to support ipv6 (#1781)
Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
2025-07-13 23:14:52 +02:00
0xsysr3ll
4c633d49c5 docs(database): update database configuration/migration instructions (#1777)
- Divided Docker and standalone installation methods in tabs
- Added some guidance for PostgreSQL socket paths, Docker networking requirements, and migration procedures
2025-07-13 13:47:16 +02:00
Ludovic Ortega
6be0c92d7b chore: upgrade semantic packages (#1779)
fix #1773
2025-07-13 13:40:11 +02:00
0xsysr3ll
3be920e74b docs(plex): add some Plex integration related documentation (#1662)
* docs(plex): add some Plex integration related documentation

* docs(plex): clarify watchlist auto-request permission requirements

* fix(docs): missing newline
2025-07-11 13:49:13 +02:00
RoboMagus
2e64f1344e chore(ci): migrate to 'semantic-release-docker' to enable semver docker tags (#1610) 2025-07-10 14:50:49 +02:00
Ludovic Ortega
8f9bc5f761 docs(docker): add healthcheck to documentation (#1748)
* docs(docker): add healthcheck to documentation

Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>

* fix: update docker cli healthcheck

---------

Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
2025-07-10 10:15:13 +02:00
Georgiy Sitnikov
d0bd134d88 docs: add Apache to reverse proxy (#1762)
* Update reverse-proxy.mdx

Add Apache2 configuration as per #1760

* Update reverse-proxy.mdx

Apache2 moved to the bottom.
Location update to sync with nginx docs
2025-07-09 16:03:55 +02:00