Commit Graph
3442 Commits
Author SHA1 Message Date
renovate[bot] c89104d144 chore(deps): update ghcr.io/jdx/mise docker tag to v2026.8.3 (#30699) 2026-08-11 12:21:04 +02:00
Daniel Dietzler 5ad1e4e0f7 fix: medium tests dependencies (#30612) 2026-08-07 11:36:20 +02:00
renovate[bot] 099cb25ce0 chore(deps): update ghcr.io/jdx/mise docker tag to v2026.8.1 (#30542) 2026-08-04 20:58:32 +02:00
Daniel Dietzler 0d7147dcec fix: metadata extraction as LensModel can be a float (#30512) 2026-08-03 18:18:24 +02:00
Santo Shakil cee08a2320 fix(server): remove the asset row when an upload fails after creating it (#30349) 2026-08-03 14:59:05 +02:00
Gueye Papa Djadji 04453b7206 fix(server): reject invalid or deleted user when creating a partner (#30431) 2026-08-03 12:56:00 +02:00
Ben Beckford fb4a08c17a chore(server): test assetFileFilter (#30430) 2026-08-03 11:55:40 +02:00
bo0tzz f1a90b7f36 feat: log hint about downgrades when migration is missing (#30493) 2026-08-03 11:06:38 +02:00
renovate[bot]andDaniel Dietzler 36cb86c886 fix(deps): update dependency js-yaml to v5 [security] (#30440)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-31 13:24:39 +02:00
renovate[bot]andDaniel Dietzler 8e0ad9b2c4 fix(deps): update typescript-projects (#30305)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-31 12:55:30 +02:00
Jason Rasmussen 0f4dddaf84 fix: migration order (#30424) 2026-07-30 15:55:21 -04:00
Giacomo PinatoandGiacomo Pinato 6b6058c463 feat: store null instead of empty string for album.description (#30123)
Addresses the first column of issue #28832: album.description now stores
and returns null instead of an empty string.

Co-authored-by: Giacomo Pinato <giacomo.pinato@gmail.com>
2026-07-30 19:41:49 +00:00
Devesh Kolte 9732bebb55 fix(server): store null instead of empty string for user password (#30223) 2026-07-30 15:19:58 -04:00
bo0tzz 7c44c29a8f chore: deflake album to asset backfill sync test (#30417) 2026-07-30 15:13:44 -04:00
bo0tzz 6e1e79585e chore: install mise tools from the lockfile in the server image (#30416) 2026-07-30 15:13:12 -04:00
bo0tzz a316ba35ca fix: shared check for server setup availability (#30311)
* fix: shared check for server setup availability

* chore: add medium test

* feat: require @Authenticated decorator everywhere

* fix: lints
2026-07-30 15:12:25 -04:00
Alexander J 0293414abd fix: minor typos (#30385) 2026-07-30 00:05:11 +02:00
bo0tzz b468459b1a chore: add test for admin controller permissions (#30316) 2026-07-28 15:44:51 +02:00
Daniel Dietzler f68815e35f fix: calendar heatmap api key permissions (#30314) 2026-07-28 12:16:59 +02:00
renovate[bot] 4225281f9f chore(deps): update ghcr.io/jdx/mise docker tag to v2026.7.15 (#30301) 2026-07-28 11:36:43 +02:00
Daniel Dietzler 6c86d39f6d fix: calendar heatmap permissions (#30310) 2026-07-28 11:33:10 +02:00
github-actions 8aa95c6747 chore: version v3.1.0 2026-07-27 18:20:33 +00:00
bo0tzz 3606144190 chore: clarify MediaRepository extract logging (#30249) 2026-07-26 13:02:57 -04:00
Daniel Dietzler b08f6b9c50 chore: medium tests system config helpers (#30174) 2026-07-24 21:27:31 +02:00
bo0tzz 4a5f13d0e5 fix: don't skip person thumbnail generation if ML is disabled (#30194) 2026-07-24 10:06:32 -04:00
Jason Rasmussen acc7e6b299 fix: min faces user preference (#30177) 2026-07-23 17:06:09 -04:00
Timon f24a128319 feat(server): new search schemas and query builders (#28686) 2026-07-22 22:33:23 +00:00
Jason Rasmussen b9f6c4aaf2 feat: password invalidate sessions (#30125) 2026-07-22 12:09:05 -04:00
Aditya Raj Singh a0c7b81142 fix(server): dissolve stack when its non-primary assets are deleted (#29354) 2026-07-22 13:00:52 +02:00
Ben Beckford 0f5bf6071f chore(server): test assetDateFilter workflow method (#30110) 2026-07-22 10:48:31 +02:00
Imperator RuscalandJason Rasmussen a560e08693 fix: re-evaluate OIDC role claim on every login and support array values (#29991)
* fix(server): re-evaluate OIDC role claim on every login and support array values

Previously the OIDC role claim (immich_role) was only read at user
auto-registration time and only accepted as a scalar string, so admin
status never updated after the first login and array-valued role/group
claims (common with Keycloak, Entra ID, etc.) were silently ignored.

Now the role claim is normalized from either a string or an array of
strings, and existing users have their isAdmin flag synced from the
claim on every login, keeping the IdP as the source of truth for
privileges while leaving isAdmin untouched when the claim is blank.

* fix(server): use .includes() instead of .some() for role claim check

Satisfies unicorn/prefer-includes lint rule flagged by CI.

* fix(server): resolve missing role claim to standard user and fix test mock

Default the OIDC role claim to 'user' when the IdP omits it so
auto-registration doesn't crash, and add the missing getAdmin mock in the
auth.service test so it correctly simulates an existing admin rather than
the first-user-registration path.

* fix: claim sync logic

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2026-07-21 17:21:19 -04:00
Daniel Dietzler 5d7283e44d fix: album update event emitting (#30120) 2026-07-21 19:43:27 +00:00
Lorenzo RotaandDaniel Dietzler 73329a8ce8 fix(server): send id_token_hint on OIDC logout (#29720)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 19:19:13 +02:00
Timon ee4bd3f833 feat: add album asset event handling (#29008)
* feat: add album asset event handling

* fix medium tests

* patch medium test

* collapse in AlbumUpdate
2026-07-21 10:55:46 -05:00
renovate[bot]andDaniel Dietzler aa08dad1f5 chore(deps): update dependency eslint-plugin-unicorn to v72 (#30092)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 15:33:46 +02:00
renovate[bot] ce022233ae chore(deps): update base-image to v202607211135 (#30090) 2026-07-21 13:58:02 +02:00
1b4d41324e fix(server): file uploads for files with extension only filenames (#30024)
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 11:57:28 +00:00
renovate[bot]andDaniel Dietzler 8365cdd59e chore(deps): update dependency typescript to v7 (#29903)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 13:36:57 +02:00
renovate[bot] e918658cc1 chore(deps): update ghcr.io/jdx/mise docker tag to v2026.7.11 (#30086) 2026-07-21 12:24:32 +02:00
renovate[bot]andDaniel Dietzler df970da59e chore(deps): update dependency eslint-plugin-unicorn to v70 - abandoned (#29684)
* chore(deps): update dependency eslint-plugin-unicorn to v70

* fix: linting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-20 23:47:14 -04:00
Daniel Dietzler 77091b0107 fix: search statistics locked folder permissions (#30063)
fix; search statistics locked folder permissions
2026-07-20 20:08:42 -04:00
Daniel Dietzler 4c754f2999 fix: timebuckets locked permissions (#30066) 2026-07-20 20:07:56 -04:00
Ben Beckford f2c00c107d fix(server): return workflow steps in ascending order (#29999) 2026-07-17 11:30:40 +02:00
renovate[bot] f18065b3c2 chore(deps): update dependency @types/node to ^24.13.3 (#29892) 2026-07-16 20:31:45 +02:00
renovate[bot]andDaniel Dietzler a3dd19cd2f fix(deps): update typescript-projects (#29633)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-16 20:14:05 +02:00
Ryan Rockey 80cdfebbc7 fix: zero byte image uploads (#29426) 2026-07-16 13:00:07 +02:00
cevdet f73c53c563 chore(seo): remove redundant twitter metadata tags (#29801) 2026-07-16 12:29:38 +02:00
Mert d2744f52b1 fix(server): disable heif security limit (#29954)
disable security limit
2026-07-16 04:40:33 -05:00
renovate[bot] 834cc54abc chore(deps): update ghcr.io/jdx/mise docker tag to v2026.7.7 (#29893) 2026-07-15 18:45:35 +00:00
Timon 4c2d2284aa refactor(server): album user route params (#29503) 2026-07-15 18:15:41 +00:00