Commit graph

2031 commits

Author SHA1 Message Date
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
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]
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]
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
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
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
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
Daniel Dietzler
fea0db02f3
fix: emit album update event when uploading assets through shared link (#29757) 2026-07-09 15:21:16 +02:00
Ben Beckford
c5222c7579
chore(server): use bounded numbers in workflows (#29009)
* chore(server): use bounded numbers in workflows

* chore: increase precision for lat/lon filtering

* chore: re-add integer to a json schema type
2026-07-08 17:15:48 -07:00
Daniel Dietzler
66e30d5fa1
fix: missing files integrity checks (#29737) 2026-07-08 14:53:46 -05:00
Daniel Dietzler
053a52aec8
fix: iso date parsing for three digit years (#29739) 2026-07-08 14:53:16 -05:00
Daniel Dietzler
655cd01d57
fix: search metadata for album shared links (#29742) 2026-07-08 20:32:20 +02:00
Mert
cfd95f0196
fix(server): stream ffprobe packets (#29723) 2026-07-08 12:51:22 -04:00
Daniel Dietzler
7a9b9e01be
feat: user agnostic database restore (#29512) 2026-07-07 21:16:48 +02:00
Daniel Dietzler
0cbe07c4d4
fix: integrity checks dto validation (#29621) 2026-07-07 20:49:26 +02:00
Daniel Dietzler
704b287bba
fix: integrity checks checksum pagination (#29516) 2026-07-07 18:42:14 +02:00
Daniel Dietzler
f8e78792b8
fix: oauth account linking (#29624) 2026-07-07 11:21:27 -05:00
Mert
69d568f289
feat(server): hls variant configuration (#29613)
* configure variants

* openapi

* dynamic level

* unnecessary width/height fields

* add web config

* allow 1440p and 2160p

* more helpful descriptions

* simplify level picker

* formatting

* integer instead of number
2026-07-06 14:57:48 -04:00
Lukas Schaefer
5645149e09
fix: downmix audio to stereo to fix broken channel layout (#29485)
* fix: downmix audio to stereo to fix broken channel layout

Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>

* add todo

Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>

---------

Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2026-07-03 10:55:12 -04:00
Ben Beckford
237734bb26
feat(web): recently added link in sidebar (#29039)
* feat(web): recently added link in sidebar

* chore(mobile): update openapi patches
2026-07-01 23:12:50 +00:00
Daniel Dietzler
deeb042a9e
feat: honor album access permissions in search endpoints (#29352) 2026-06-29 22:27:22 +02:00
Daniel Dietzler
b4cc406a3f
fix!: search endpoints visibility can be omitted (#29385) 2026-06-29 22:00:02 +02:00
Padhai_Kaneer
df383c1ead
fix(server): face region coordinates parsing (#29333) 2026-06-29 17:05:20 +02:00
Ben Beckford
953ef5c047
feat: webhook workflow action (#29258)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-06-26 16:08:45 +02:00
jullang
a876d4a9f1
fix: small typo in openapi-spec (#29308)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-06-26 10:28:52 +00:00
Daniel Dietzler
9751530af8
feat: plugin wrapper type safety (#29300) 2026-06-24 15:22:35 -04:00
Ben Beckford
99f94a363d
chore(web): workflow property ordering (#29261)
* chore(web): workflow property ordering

* chore(web): extract schema property sorting to method
2026-06-23 13:03:33 +00:00
renovate[bot]
0656e7e231
chore(deps): update dependency typescript to v6 (#28772)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-06-23 14:01:09 +02:00
Timon
f22836e1bf
refactor(server): describe check upload id as string (#29274) 2026-06-23 12:42:42 +02:00
Jason Rasmussen
ec7c0f9ec8
fix: sync backfill (#29267) 2026-06-22 16:19:01 -04:00
Daniel Dietzler
c484bd99b6
fix: ignore external libraries for integrity report checksum check (#29248) 2026-06-22 13:56:24 +00:00
Anthony Clerici
c0bf5a4c56
fix(server): use VBR for QSV so the max bitrate is respected (#29240)
* fix(server): use VBR for QSV so the max bitrate is respected

* update test
2026-06-22 09:56:20 -04:00
Daniel Dietzler
805bb84877
fix: defensive album owner migration (#29200) 2026-06-18 23:51:38 +02:00
Daniel Dietzler
a719552243
fix: rc version check (#29194) 2026-06-18 21:00:12 +00:00
Timon
48861b085e
chore(server): organize integrity dtos (#29191) 2026-06-18 14:44:28 +02:00
Timon
09d0380804
refactor(server): use zod time validation (#29189) 2026-06-18 11:56:02 +00:00