Commit graph

3431 commits

Author SHA1 Message Date
Giacomo 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 Ruscal
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 Rota
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]
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
Rust
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]
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]
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]
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
Andreas Heinz
e7f773197f
fix(server/workflow): add trigger for external libraries AssetCreate (#29597) 2026-07-15 19:30:33 +02:00
Raul
b4530b0671
fix(server): workflow date filter, make end date inclusive (#29876)
Co-authored-by: Raul Plesa <raul.plesa@external.grifols.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-15 10:50:03 +00:00
Lorenzo Montanari
a04e2ddeca
fix(server): updated default CSP config to support videos from V3 player (#29830) 2026-07-15 12:49:18 +02:00
github-actions
cd308ad930 chore: version v3.0.3 2026-07-14 21:10:19 +00:00
Mert
89b0d906e8
fix(server): set hvc1 tag when using hwa (#29908)
fix hvc1 check
2026-07-14 11:03:30 -04:00
Daniel Dietzler
2ed8b2bddd
fix: memory search date validation (#29907) 2026-07-14 16:34:38 +02:00
renovate[bot]
20e123c839
chore(deps): update base-image to v202607132058 (#29895) 2026-07-14 11:16:42 +02:00
Daniel Dietzler
35fcca6254
fix: locked visibility in search random endpoint (#29887) 2026-07-13 20:03:20 +00:00
shenlong
99883096d6
fix: still part of live photo hidden on bg upload (#29884)
* fix: still part of live photo hidden on bg upload

* add foreground tests

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-13 14:50:06 -05:00
Daniel Dietzler
84dff19ca9
fix: unauthorized album owner update (#29883) 2026-07-13 11:46:18 -05:00
github-actions
443b856ac3 chore: version v3.0.2 2026-07-09 17:33:21 +00:00