seerr/server
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
..
api fix(api): update Plex Watchlist URL (#1847) 2025-08-15 03:57:30 +08:00
constants chore: merge upstream (#1592) 2025-04-29 17:25:36 +02:00
entity fix(mediarequests): properly sort season numbers in media requests (#1688) 2025-05-31 11:23:15 +02:00
interfaces/api feat: dns caching manager (#1294) 2025-08-20 03:02:21 +08:00
job fix(blacklist): handle invalid keywords gracefully (#1815) 2025-08-01 11:03:22 +02:00
lib feat: dns caching manager (#1294) 2025-08-20 03:02:21 +08:00
middleware perf(imageproxy): do not set cookies to image proxy so CDNs can cache images (#3332) 2023-02-12 20:05:29 +09:00
migration fix(entity): use TIMESTAMPTZ in Postgres and sort issue comments oldest-first (#1654) 2025-05-10 03:38:22 +08:00
models feat: Option on item's page to add/remove from watchlist (#781) 2024-08-07 13:46:57 +02:00
repositories feat(add watchlist): adding midding functionality from overserr 2023-04-27 22:27:23 +07:00
routes feat: dns caching manager (#1294) 2025-08-20 03:02:21 +08:00
scripts feat: view other users' watchlists (#2959) 2022-08-22 05:50:27 +00:00
subscriber fix(MediaRequestSubscriber): use event manager to get fresh media state for MEDIA_AVAILABLE notifications (#1825) 2025-08-10 21:33:06 +02:00
templates/email feat(notif): issue notifications (#2242) 2021-12-04 21:24:26 +09:00
types revert: reverts csrf-csrf back to csurf (#1442) 2025-03-11 09:33:40 +08:00
utils feat: dns caching manager (#1294) 2025-08-20 03:02:21 +08:00
datasource.ts refactor(postgres): add postgres socket (#1248) 2025-01-12 22:40:46 +08:00
index.ts feat: dns caching manager (#1294) 2025-08-20 03:02:21 +08:00
logger.ts refactor: rename some remaining Overseerr occurrences (#1397) 2025-02-26 13:08:00 +08:00
tsconfig.json refactor: update Next.js, React.js and Node.js (#815) 2024-06-23 23:43:54 +02:00