Commit Graph
917 Commits
Author SHA1 Message Date
bo0tzzandGitHub 4a5f13d0e5 fix: don't skip person thumbnail generation if ML is disabled (#30194) 2026-07-24 10:06:32 -04:00
Jason RasmussenandGitHub b9f6c4aaf2 feat: password invalidate sessions (#30125) 2026-07-22 12:09:05 -04:00
Aditya Raj SinghandGitHub a0c7b81142 fix(server): dissolve stack when its non-primary assets are deleted (#29354) 2026-07-22 13:00:52 +02:00
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 DietzlerandGitHub 5d7283e44d fix: album update event emitting (#30120) 2026-07-21 19:43:27 +00:00
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
TimonandGitHub 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
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
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]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Daniel 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 DietzlerandGitHub 77091b0107 fix: search statistics locked folder permissions (#30063)
fix; search statistics locked folder permissions
2026-07-20 20:08:42 -04:00
Daniel DietzlerandGitHub 4c754f2999 fix: timebuckets locked permissions (#30066) 2026-07-20 20:07:56 -04:00
cevdetandGitHub f73c53c563 chore(seo): remove redundant twitter metadata tags (#29801) 2026-07-16 12:29:38 +02:00
Andreas HeinzandGitHub e7f773197f fix(server/workflow): add trigger for external libraries AssetCreate (#29597) 2026-07-15 19:30:33 +02:00
MertandGitHub 89b0d906e8 fix(server): set hvc1 tag when using hwa (#29908)
fix hvc1 check
2026-07-14 11:03:30 -04:00
Daniel DietzlerandGitHub 35fcca6254 fix: locked visibility in search random endpoint (#29887) 2026-07-13 20:03:20 +00:00
Daniel DietzlerandGitHub 84dff19ca9 fix: unauthorized album owner update (#29883) 2026-07-13 11:46:18 -05:00
Daniel DietzlerandGitHub fea0db02f3 fix: emit album update event when uploading assets through shared link (#29757) 2026-07-09 15:21:16 +02:00
Daniel DietzlerandGitHub 66e30d5fa1 fix: missing files integrity checks (#29737) 2026-07-08 14:53:46 -05:00
Daniel DietzlerandGitHub 655cd01d57 fix: search metadata for album shared links (#29742) 2026-07-08 20:32:20 +02:00
Daniel DietzlerandGitHub 7a9b9e01be feat: user agnostic database restore (#29512) 2026-07-07 21:16:48 +02:00
Daniel DietzlerandGitHub 704b287bba fix: integrity checks checksum pagination (#29516) 2026-07-07 18:42:14 +02:00
Daniel DietzlerandGitHub f8e78792b8 fix: oauth account linking (#29624) 2026-07-07 11:21:27 -05:00
MertandGitHub 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 SchaeferandGitHub 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
Daniel DietzlerandGitHub deeb042a9e feat: honor album access permissions in search endpoints (#29352) 2026-06-29 22:27:22 +02:00
Daniel DietzlerandGitHub b4cc406a3f fix!: search endpoints visibility can be omitted (#29385) 2026-06-29 22:00:02 +02:00
Padhai_KaneerandGitHub df383c1ead fix(server): face region coordinates parsing (#29333) 2026-06-29 17:05:20 +02:00
953ef5c047 feat: webhook workflow action (#29258)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-06-26 16:08:45 +02:00
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
Anthony ClericiandGitHub 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
MertandGitHub 7ef2de6b53 feat(server): add hls playlist hint (#29150)
* add playlist hint

* update api

* unused import

* update crf in tests
2026-06-17 19:02:10 -04:00
a364b56b1c fix(server): skip existing users when sharing albums (#28884)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-06-17 15:54:20 +02:00
Mees FrenselandGitHub 430a2bbfd3 chore(server): add switch case exhaustiveness lint (#29029) 2026-06-17 12:04:41 +02:00
Daniel DietzlerandGitHub e70a1163f3 fix: too strict cron expression validation (#29138) 2026-06-16 13:20:40 +00:00
cc8d3b4107 fix(server): do not merge metadata when multiple duplicates are kept (#29035)
* fix(server): do not merge metadata when multiple duplicates are kept

* Update server/src/services/duplicate.service.spec.ts

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-06-15 16:05:04 -04:00
TimonandGitHub b633cc4f04 fix(server): hide partner archived asset locations from map (#29028) 2026-06-15 16:30:52 +02:00
Daniel DietzlerandGitHub 43b2d04e2c fix: version tests (#29032) 2026-06-12 15:54:42 +00:00
MertandGitHub aa126e377c fix(server): add hint header for segment after init.mp4 (#28867)
* add hint header for segment after init.mp4

* use zod

* actually validate

* update openapi

* linting
2026-06-10 19:18:36 -04:00
74878628c8 feat: integrity check jobs (missing files, untracked files, checksums) (#24205)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Signed-off-by: izzy <me@insrt.uk>
2026-06-10 21:02:27 +02:00
Mees FrenselandGitHub 4ead3e697d chore(server): update asset not ready error messages (#28968) 2026-06-10 20:23:17 +02:00
bo0tzzandGitHub d3680871ef feat: warn if microservices worker is missing (#28869)
* feat: warn if microservices worker is missing

* fix: ci
2026-06-10 09:31:32 -04:00
TimonandGitHub d10153bbc7 fix(server): hide isFavorite from album asset sync stream (#28923)
* fix(server): hide isFavorite from album asset sync stream

* some tests

* Revert "some tests"

This reverts commit 3242e6961c.

* alter existing test to clear test's intent

* Reapply "some tests"

This reverts commit f1d4c47f5f.

* drop one

* sql
2026-06-09 00:03:03 -04:00
164cda87a3 fix(web): use irot/imir tags for HEIF Orientation (#27820)
* fix(web): use irot/imir tags for HEIF Orientation

* ignore Exif Orientation for HEIF images per MIAF standard compliance

* add Rotation and Mirroring to exiftool numericTags

* add isHeifBasedImage function to detect HEIF-based image extensions

* add getHeifBasedOrientation method to map irot/imir tags to ExifOrientation

* removed mirroring, simplified code

* Removed "Based" in "heifBased"

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-06-08 09:33:28 -04:00
TimonandGitHub 474efd39f8 refactor(server): prevent sharing album with owner by filtering out user from albumUsers (#28891)
fix(server): prevent sharing album with owner by filtering out user from albumUsers
2026-06-07 17:46:26 -04:00
YarosandGitHub 733373c0ca feat(mobile): ocr support (#26523) 2026-06-05 04:29:03 +05:30
b3d49045de feat: user upload heatmap (#28593)
* Feat - Heatmap

* Implemented Comments to prettify and code cleanup

* fixing code to pass cases.

* fixing errors for OpenAPI Clients

* Improving the code.

* Fix code

* Rerun generated client check

* Rerun generated client

* feat: command for user pages (#28554)

* fix(web): timeline stuttering with many assets in 1 day (#28509)

* fix(web): timeline stuttering with many assets in 1 day

* cache isInOrNearViewport per day

* skip inOrNearViewport check on first run

* chore(ml): allow insightface 1.x (#28595)

* chore(ml): allow insightface 1.x

The new insightface 1.0 release appears to have no breaking code changes nor relevant license changes ([before](https://github.com/deepinsight/insightface/blob/2a78baec428354883e0cda39c54b555a5ed8358a/README.md), [after](https://github.com/deepinsight/insightface/blob/70f3269ea628d0658c5723976944c9de414e96f8/README.md), c.f. https://github.com/immich-app/immich/blob/fd7ddfef54cdf2b6256c4fc08bc5ff3f86176775/machine-learning/README.md), and it works on my machine.

* Update uv.lock

* please excuse my incompetence

* Triggering the actions.

* bad merge

* Fix code

* Code clear

* Resolve conflict

* Resolve conflict

* Resolve conflict

* Resolve errors

* Resolve errors

* Resolve errors more

* chore: clean up

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Ben Beckford <ben@benjaminbeckford.com>
Co-authored-by: Aaron Liu <aaronliu0130@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-06-04 15:36:09 -04:00
99281de6ab refactor!: disallow star rating < 1 (#27896)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: timonrieger <mail@timonrieger.de>
2026-06-04 17:06:28 +00:00
e2de8c7c53 refactor(server)!: remove changeExpiryTime (#28816)
* fix(mobile): clear shared link password

* fix(mobile): clear shared link description

* fix(mobile): clear shared link expiry

* refactor(server)!: remove changeExpiryTime

* fix(mobile): clear shared link expiry

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-06-04 08:35:45 +00:00
TimonandGitHub e94e22f3f8 fix(server): respect timezone in iso date string encoding (#28810) 2026-06-03 19:00:10 -04:00