Commit Graph

2581 Commits (ce6631f7e05df5c2d116dc382ea3914b6d517c47)

Author SHA1 Message Date
renovate[bot] 3d042cc7f1
fix(deps): update typescript-projects (#17961)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-29 13:00:37 +07:00
renovate[bot] fb52ac0f5b
chore(deps): update node.js to v22.15.0 (#17956)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-29 12:08:32 +07:00
Eli Gao 48bcbee6ed
feat(server): JXL previews from DNG 1.7+ (#17861)
* feat(server): JXL previews from RAW

* refactor(server): use var name assumedExtractedFormat for clarity

* test(server): fix existing media.extract() returning JPEG

* chore(openapi): regen

* style(server): lint

* fix(server): ignore undefined decode orientation

* fix(server): correct orientation assignment in media decode options

* test(server): unit tests of JXL-encoded DNG

* refactor(server): return buffer and format from mediaRepository.extract()

* chore(open-api): regen

* refactor

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-04-28 18:18:46 +07:00
Daniel Dietzler f621f8ef2c
refactor: more job queries (#17745) 2025-04-29 00:03:20 +07:00
Jason Rasmussen 1b5fc9c665
feat: notifications (#17701)
* feat: notifications

* UI works

* chore: pr feedback

* initial fetch and clear notification upon logging out

* fix: merge

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-04-28 10:36:14 +07:00
Jason Rasmussen ad272333db
refactor: user avatar color (#17753) 2025-04-28 08:54:51 +07:00
Zack Pollard 460d594791
feat: api response compression (#17878) 2025-04-28 08:54:11 +07:00
github-actions 02994883fe chore: version v1.132.3 2025-04-25 19:44:05 +07:00
github-actions 0d60be3d87 chore: version v1.132.2 2025-04-25 03:07:06 +07:00
Jason Rasmussen 1d610ad9cb
refactor: database connection parsing (#17852) 2025-04-24 12:58:29 +07:00
github-actions 37f5e6e2cb chore: version v1.132.1 2025-04-23 21:43:47 +07:00
Mert 6ce8a1deeb
fix(server): bump sharp (#17818)
* bump sharp

* test linking

* link in prod image too

* force global

* keep unnecessary libraries

* override sharp version

* revert dockerfile changes

* add node-gyp and napi

* dev dependency
2025-04-23 17:08:29 +07:00
github-actions f659ef4b7a chore: version v1.132.0 2025-04-23 16:44:47 +07:00
Zack Pollard d2f2f8d672
fix: retrieve version from lockfile and fallback to cli command (#17812) 2025-04-23 17:10:43 +07:00
Zack Pollard 19746a8685
fix: cache build versions (#17811) 2025-04-23 16:31:18 +07:00
Thomas 987e5ab76c
fix(server): start job workers after DB (#17806)
Job workers are currently started on app init, which means they are started
before the DB is initialised. This can be problematic if jobs which need to use
the DB start running before it's ready. It also means that swapping out the
queue implementation for something which uses the DB won't work.
2025-04-23 15:07:32 +07:00
Jason Rasmussen 1b5e981a45
fix: failing ci checks (#17810) 2025-04-23 10:59:54 +07:00
Tin Pecirep b7a0cf2470 feat: add oauth2 code verifier
* fix: ensure oauth state param matches before finishing oauth flow

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* chore: upgrade openid-client to v6

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* feat: use PKCE for oauth2 on supported clients

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* feat: use state and PKCE in mobile app

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: remove obsolete oauth repository init

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: rewrite callback url if mobile redirect url is enabled

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: propagate oidc client error cause when oauth callback fails

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: adapt auth service tests to required state and PKCE params

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: update sdk types

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: adapt oauth e2e test to work with PKCE

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: allow insecure (http) oauth clients

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

---------

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-04-23 15:08:11 +07:00
renovate[bot] 0426b574fe
fix(deps): update typescript-projects (#17625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-04-23 11:45:38 +07:00
Mert 92ac1193e6
fix(server): queue android motion assets for transcoding (#17781) 2025-04-23 12:03:28 +07:00
Min Idzelis 2a95eccf6a
fix: vscode vitest ext - missing jsdom dev dependency (#17799) 2025-04-22 23:01:22 +07:00
renovate[bot] a8eec92da7
chore(deps): update dependency @types/node to ^22.14.1 (#17770)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-04-22 10:18:44 +07:00
Bonne Eggleston fe8c5e8107
feat: add album start and end dates for storage template (#17188) 2025-04-21 19:54:33 +07:00
Jason Rasmussen 56a4aa9ffe
refactor: email repository (#17746) 2025-04-21 12:53:37 +07:00
Jason Rasmussen 488dc4efbd
refactor: notification-admin controller (#17748) 2025-04-21 10:49:26 +07:00
Daniel Dietzler dd1fcd5be5
chore: remove asset entity (#17703) 2025-04-18 21:39:56 +07:00
Daniel Dietzler 52ae06c119
refactor: remove album entity, update types (#17450) 2025-04-18 23:10:34 +07:00
Daniel Dietzler 854ea13d6a
chore: simplify asset getByIds (#17699) 2025-04-18 16:52:41 +07:00
Jason Rasmussen 160bb492a2
fix: skip initial kysely migration for existing installs (#17690)
* fix: skip initial kysely migration for existing installs

* Update docs/src/pages/errors.md

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-04-18 11:19:11 +07:00
Jason Rasmussen 6474a78b8b
feat: initial kysely migration file (#17678) 2025-04-17 17:38:47 +07:00
Jason Rasmussen e275f2d8b3
feat: add foreign key indexes (#17672) 2025-04-17 14:41:06 +07:00
Mert 242a559e0f
refactor: query for fetching faces and people of assets (#17661)
* use json instead of jsonb

* missing condition
2025-04-16 19:00:55 +07:00
Jonathan Jogenfors ed2b54527c
chore(server): don't check null dates (#17664) 2025-04-16 18:40:08 +07:00
Daniel Dietzler 8b38f8a58d
fix: do not select album in time bucket query (#17662) 2025-04-16 17:52:22 +07:00
yparitcher 29b30570bf
fix: use IMMICH_HOST in microservices (#17659) 2025-04-16 23:05:12 +07:00
Daniel Dietzler 586a7a173b
refactor: handle detect faces job query (#17660) 2025-04-16 22:52:54 +07:00
Daniel Dietzler 1bbfacfc09
refactor: more job query stuff (#17658) 2025-04-16 22:10:20 +07:00
Daniel Dietzler 85c2d36d99
refactor: dedicated get album thumbnail files query (#17657) 2025-04-16 21:10:27 +07:00
Jason Rasmussen 8cefa0b84b
refactor: migrate some e2e to medium (#17640) 2025-04-16 14:59:08 +07:00
Daniel Dietzler f50e5d006c
refactor: dedicated queries for asset jobs (#17652) 2025-04-16 14:08:49 +07:00
Nils Uliczka be2f670d35
fix: skip places that no longer exist in geo import (#17637) 2025-04-15 21:27:47 +07:00
Jason Rasmussen 8da5f21fcf
refactor: medium tests (#17634) 2025-04-15 15:54:23 +07:00
Jonathan Jogenfors 76db8cf604
refactor(server): remove asset placeholder (#17621)
chore: remove AssetEntityPlaceholder

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-04-15 15:53:49 +07:00
Daniel Dietzler 21becbf1b0
refactor: dedicated query for asset migration job (#17631) 2025-04-15 15:49:15 +07:00
Daniel Dietzler 5bceefce75
refactor: stream assets for thumbnail job (#17623) 2025-04-15 19:53:28 +07:00
Jason Rasmussen b710ad36f3
feat: upgrade kysely (#17630)
* feat: upgrade kysely

* chore: pr feedback
2025-04-15 13:26:56 +07:00
Daniel Dietzler 270d178a2e
fix: unsafe cast (#17590) 2025-04-15 11:35:00 +07:00
Daniel Dietzler 309528c807
chore: upgrade package locks (#17626) 2025-04-15 11:34:21 +07:00
renovate[bot] b3371e16f2
fix(deps): update typescript-projects (#17611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-15 15:55:03 +07:00
Jason Rasmussen 17e720440d
refactor: new asset-job repository (#17622)
* refactor: new asset-job repository

* fix: broken medium tests on main
2025-04-15 10:24:51 +07:00
Jason Rasmussen f189c7b101
refactor: medium tests (#17599) 2025-04-15 08:53:14 +07:00
renovate[bot] f73fce1046
chore(deps): update base-image to v202504081114 (major) (#17613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-15 12:47:10 +07:00
Mert c3d10c5be2
refactor(server): non-nullable file metadata (#17598) 2025-04-15 12:03:31 +07:00
Jason Rasmussen b2753103c6
chore: remove unused logger (#17593) 2025-04-14 15:01:49 +07:00
Daniel Dietzler 0b69d1c147
refactor: selected columns in queries (#17589) 2025-04-14 13:34:06 +07:00
Daniel Dietzler 184e142d87
refactor: migrate asset job status entity (#17560) 2025-04-14 12:21:56 +07:00
Andreas Tollkötter 8b00578c7b
fix: read longitude and latitude when reverse geocoding is off (#17558) 2025-04-14 10:43:46 +07:00
Erik Nygren 7562088fac
feat(server): parse EXIF creation time for some insta360 images (#17564)
It seems insta360 stores metadata in XMP GPano tags, with their own
non-standard and undocumented addition `SourceImageCreateTime`. For some
pictures this is the only EXIF tag containing a creation time.
2025-04-13 23:44:18 +07:00
Daniel Dietzler a373034629
refactor: migrate stacks (#17559)
chore: migrate stacks
2025-04-12 08:33:35 +07:00
renovate[bot] 5dac315af7
fix(deps): update dependency @nestjs/common to v11.0.16 [security] (#17557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-12 12:31:18 +07:00
Daniel Dietzler 5548eb0dad
fix: live photo hiding (#17548) 2025-04-11 17:09:58 +07:00
Mert 25f2b9602f
refactor(server): remove face, person and face search entities (#17535)
* remove face, person and face search entities

update tests and mappers

check if face relation exists

update sql

unused imports

* pr feedback

generate sql, remove unused imports
2025-04-11 14:44:45 +07:00
Etienne d7a782da34
feat: sync pictureFile with oidc if it isn't set already (#17397)
* feat: sync pictureFile with oidc if it isn't set already

fix: move picture writer to get userId

fix: move await promise to the top of the setPicure function before checking its value and automatically create the user folder

chore: code cleanup

* fix: extension double dot

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-04-11 13:00:39 +07:00
Jason Rasmussen 584e5894bf
refactor: user factories instead of stubs (#17540) 2025-04-11 11:53:37 +07:00
Jason Rasmussen 75c83cb704
refactor: metadata stub (#17532) 2025-04-10 21:58:55 +07:00
Jason Rasmussen 0b22d3348e
refactor: count all return type (#17529) 2025-04-10 14:38:49 +07:00
Jason Rasmussen eaa0e07329
refactor: asset files entity (#17527) 2025-04-10 13:26:27 +07:00
Snowknight26 7fcab4b251
feat(server): read additional lens exif tags (#17125)
* fix(server): read additional lens exif tags

* Update order of read tags

* Fix e2e test

* Fix e2e test

* Fix e2e test

* Fix e2e test

* Update test

* Filter unknown lens exif data

* Formatting fixes
2025-04-10 12:02:41 +07:00
Jason Rasmussen 4412680679
refactor: remove unused shared users list (#17526) 2025-04-10 11:44:47 +07:00
Brandon Wees 7df2c9c905
fix: patch-package install in docker build and better postgres patch (#17523)
* always patch package when running npm i, install immich CLI outside of directory so post install doesnt run

* handles case where query is an object and defined but origin is not.

* move patch-package from a dev dependency to a normal dependency. Also copy the patches folder for the docker build to use and patch with

* fix Dockerfile

* use query.reject instead of throw for queryError

* package-lock to reflect the dev dependency change

* dont throw the error, just provide an empty string for query.origin if it does not exist

* remove npm link and demote patch-package back to a dev dependency

* modify patch to add defensive check to catch queries that will fail to parse and reject
2025-04-10 12:43:35 +07:00
Daniel Dietzler 7a1e8ce6d8
chore: remove exif entity (#17499) 2025-04-10 12:36:29 +07:00
Jason Rasmussen 8aea07b750
refactor: album user entity (#17524) 2025-04-10 11:53:21 +07:00
Zack Pollard 94dba29298
refactor: remove user entity (#17498) 2025-04-10 10:53:21 +07:00
Zack Pollard d03647904b
refactor: remove move entity (#17489) 2025-04-09 11:54:20 +07:00
Jason Rasmussen 206545356d
refactor: metadata entity (#17492) 2025-04-09 11:45:30 +07:00
renovate[bot] 3e372500b0
fix(deps): update typescript-projects (#17456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-04-09 14:47:29 +07:00
Jason Rasmussen 8943ec23ba
refactor: more database types (#17490) 2025-04-09 10:24:38 +07:00
Jason Rasmussen cf2c0260a6
refactor: activity item (#17470)
* refactor: activity item

* fix query

* qualified columns

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-04-09 08:35:20 +07:00
Alex ae8af84101
fix: no thumbnail generated for motion assets (#17472) 2025-04-08 16:07:10 +07:00
Jason Rasmussen 4794eeca88
refactor: database types (#17468) 2025-04-08 12:40:03 +07:00
Alex e5ca79dd44
refactor: remove session entity (#17466)
* refactor: remove session entity

* fix: test

* update sql

* remote export
2025-04-08 16:04:07 +07:00
Jason Rasmussen 49be6d7fd8
refactor: more database enums (#17465) 2025-04-08 12:02:05 +07:00
Daniel Dietzler 15c6506aee
fix: broken start/end dates on album update (#17467) 2025-04-08 15:47:44 +07:00
Jason Rasmussen 2c31a11e41
chore: replace generated enums with actual types (#17463) 2025-04-08 11:13:46 +07:00
Jason Rasmussen b6c5a03533
refactor: remove tag entity (#17462) 2025-04-08 10:52:54 +07:00
Jason Rasmussen fdbe6d649f
refactor: remove smart search entity (#17447)
refactor: smart search entity
2025-04-08 09:56:45 +07:00
renovate[bot] ffd18c5459
chore(deps): update dependency @types/node to ^22.14.0 (#17459)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 12:14:30 +07:00
PyKen 8242ff9bab
fix(server): Exclude album assets in shared link payload (#17207)
* fix(server): Exclude album assets in shared link payload

* Fix e2e test
2025-04-08 00:19:06 +07:00
Jason Rasmussen 8203b6c450
refactor: stop using geodata entity type (#17444) 2025-04-08 00:15:43 +07:00
Jason Rasmussen b352cf3336
refactor: remove natural earth countries enity (#17445) 2025-04-08 00:15:16 +07:00
Jason Rasmussen e7a5b96ed0
feat: extension, triggers, functions, comments, parameters management in sql-tools (#17269)
feat: sql-tools extension, triggers, functions, comments, parameters
2025-04-07 15:12:12 +07:00
Ruben Hensen 99cddf1fd6
feat: allow accounts with a quota of 0 GiB (#17413)
* Allow 0GiB quotas in user create/edit form, remove unused translations

* Make requireQuota check for null or 0

* Add unlimited quota change to the docs

* Fix user dto formatting

* Fix formating edit-user-form

* Regenerate open-api files

* Revert unnecessary i18n file changes

* Re-add newline en.json

* Resolve linting issues

* Fix formatting edit-user-form

* Re-add manifest
2025-04-07 09:22:56 +07:00
Zack Pollard 2248a38567
fix: missing index and geodata import process uses normal table (#17343)
* chore: add geodata indexes to table definitions

* chore: rename incorrectly name geodata index

* fix: import into geodata places with correct index names
2025-04-03 21:32:33 +07:00
Zack Pollard 40cff2893c
fix: metadata service init failure should halt server startup (#17356) 2025-04-03 12:35:39 +07:00
Abhinav Valecha b621281351
feat(server): Avoid face match with people born after file creation #4743 (#16918)
* feat(server): Avoid face matching with people born after file creation date (#4743)

* lint

* add medium tests for facial recognition

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-04-02 10:37:26 +07:00
github-actions 00d3b8d83a chore: version v1.131.3 2025-04-01 22:27:52 +07:00
Mert d911b76c08
fix(server): use stat instead of exifinfo for file date metadata (#17311)
* use stat instead of filecreatedate

* update tests

* unused import
2025-04-01 17:24:07 +07:00
shenlong 502854cee1
fix(server): remove stacks on stack.deleteAll (#17288)
* fix(server): delete all stacks on deleteAll

* remove unnecessary assets update

* generate sql

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-04-01 17:20:43 +07:00
Mert 59e5c82569
fix(server): full-size images not migrated or deleted correctly (#17308)
* fix file path logic

* update tests

* add empty array fallback just in case for now
2025-04-01 18:11:46 +07:00
bo0tzz 3e03c47fbf
fix: strip extra metadata when transcoding (#17297) 2025-04-01 08:58:59 +07:00
github-actions 9aa3850769 chore: version v1.131.2 2025-04-01 11:41:56 +07:00
renovate[bot] 628dcdeebf
fix(deps): update typescript-projects (#17294)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-01 10:58:55 +07:00
renovate[bot] 69b1ac47ea
fix(deps): update typescript-projects (#17287)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-01 12:32:09 +07:00
renovate[bot] 4f81265694
chore(deps): update dependency @types/node to ^22.13.14 (#17283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-01 12:30:41 +07:00
github-actions 7729fe80fa chore: version v1.131.1 2025-03-31 20:36:48 +07:00
martin 68e24ad168
fix: posix compliant command (#17264) 2025-03-31 16:35:02 +07:00
Jason Rasmussen 186c573565
fix: missing migration folder broke non-root setups (#17266) 2025-03-31 20:18:13 +07:00
github-actions 5b63b9fc8b chore: version v1.131.0 2025-03-31 18:41:13 +07:00
Eli Gao 5c80e8734b
feat: original-sized previews for non-web-friendly images (#14446)
* feat(server): extract full-size previews from RAW images

* feat(web): load fullsize preview for RAW images when zoomed in

* refactor: tweaks for code review

* refactor: rename "converted" preview/assets to "fullsize"

* feat(web/server): fullsize preview for non-web-friendly images

* feat: tweaks for code review

* feat(server): require ASSET_DOWNLOAD premission for fullsize previews

* test: fix types and interfaces

* chore: gen open-api

* feat(server): keep only essential exif in fullsize preview

* chore: regen openapi

* test: revert unnecessary timeout

* feat: move full-size preview config to standalone entry

* feat(i18n): update en texts

* fix: don't return fullsizePath when disabled

* test: full-size previews

* test(web): full-size previews

* chore: make open-api

* feat(server): redirect to preview/original URL when fullsize thumbnail not available

* fix(server): delete fullsize preview image on thumbnail regen after fullsize preview turned off

* refactor(server): AssetRepository.deleteFiles with Kysely

* fix(server): type of MediaRepository.writeExif

* minor simplification

* minor styling changes and condensed wording

* simplify

* chore: reuild open-api

* test(server): fix media.service tests

* test(web): fix photo-viewer test

* fix(server):  use fullsize image when requested

* fix file path extension

* formatting

* use fullsize when zooming back out or when "display original photos" is enabled

* simplify condition

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-03-31 13:24:28 +07:00
Mert 6789c2ac19
feat(ml): better multilingual search with nllb models (#13567) 2025-03-31 11:06:57 +07:00
Brandon Wees d71c5602c3
fix(server): Postgres error pretty printing (#17204)
* add patch-package to dev dependencies

this allows us to patch upstream packages without waiting for PRs to be merged (or not!). Patch-package does a pretty good job of notifying if upstream does a change to invalidate the patch (its a git patch under the hood).

* Patch implementation of https://github.com/porsager/postgres/pull/944

This PR has not been merged by upstream and helps produce verbose error messages when postgres fails to connect (usually incorrect credentials). This is in contrast to error messages such as

`TypeError: Cannot read properties of undefined (reading 'replace'), stack: TypeError: Cannot read properties of undefined (reading 'replace')`

* have postinstall only run when not installing a global package (such as immich-cli in the Docker build)
2025-03-31 09:34:43 +07:00
Mert 8c50e3e80e
feat(server): consider `JpgFromRaw2` tag for embedded previews (#17123)
* add jpgfromraw2

* unused catch
2025-03-31 09:17:57 +07:00
Jonathan Jogenfors efcb1129ce
fix(server): don't sync null date assets (#17247) 2025-03-31 09:16:53 +07:00
Jonathan Jogenfors faabda4446
fix(server): multiple exclusion patterns (#17221) 2025-03-31 09:16:30 +07:00
Alex b8b2898c87
fix(server): double extension when filename has uppercase extension (#17226)
* fix(server): double extension when filename has uppercase extension

* Proper tests
2025-03-31 09:16:04 +07:00
Zack Pollard d613f15606
test: fix flaky user handle delete check medium test (#17253)
we can't run specifically the handleUserDeleteCheck tests concurrently due to one of the tests modifying the config in the shared database
if run concurrently you can get race conditions where the other tests pick up the change, even with resetting the config in the beforeEach
therefore the test that checks a delete actually happens, fails
there are many ways to solve this, disabling concurrency for the suite, forcing sequential tests for just handleUserDeleteCheck, increasing the delete test deletedAt to more than the custom duration tests deleteDelay
I applied all three of these. You could also force all the user tests to run in their own databases, but that feels overkill
2025-03-31 13:19:57 +07:00
hwang a831876fdc
fix: MAX_PARAMETERS_EXCEEDED error during person cleanup job (#17222)
* add batch size in sql delete,fix person cleanup error: ERROR [Microservices:{}] Unable to run job handler (backgroundTask/person-cleanup): Error: MAX_PARAMETERS_EXCEEDED: Max number of parameters (65534) exceeded

* add chunked decorator to delete

* chore: prettier formatting fixes

---------

Co-authored-by: hwang3419 <“hwang.iit@gmail.com”>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-03-31 11:30:56 +07:00
PathToLife 09f4476f97
feat: improve performance for GET /api/album & /api/album/:id (#17124)
* fix(server) optimize number of sql calls for GET /api/albums

remove unnecessary join for getMetadataForIds
remove separate call to getLastUpdatedAssetForAlbumId

* fix(server) remove unnecessary getLastUpdatedAssetForAlbumId call for GET /api/album/:id

also remove getLastUpdatedAssetForAlbumId query as it is no longer referenced

* fix(server): correct lastModifiedAssetTimestamp return type + formatting and typing

* chore(server): address type issue with tests found via npm:check

tests & lint still pass before this commit.
2025-03-31 11:28:41 +07:00
Daniel Dietzler 238c151ac3
chore: finish migrating eslint config files; bump unicorn (#17200) 2025-03-31 12:18:25 +07:00
bo0tzz e4f83680d9
feat: use my.immich.app for externalDomain fallback (#17209)
* feat: use my.immich.app for externalDomain fallback

This is probably more useful than localhost.

* chore: remove port param

* fix: update expected value in tests

* fix: update expected value in e2e
2025-03-31 12:08:41 +07:00
Jason Rasmussen 55a3c30664
feat: kysely migrations (#17198) 2025-03-29 09:26:24 +07:00
renovate[bot] 6fa0cb534a
fix(deps): update dependency @opentelemetry/context-async-hooks to v2 (#17031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-28 20:51:01 +07:00
Jason Rasmussen 4b4bcd23f4
feat: schema diff sql tools (#17116) 2025-03-28 10:40:09 +07:00
renovate[bot] e163808348
fix(deps): update typescript-projects (#17080)
* fix(deps): update typescript-projects

* fix: otel

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-03-27 22:33:58 +07:00
github-actions 43f8f473e9 chore: version v1.130.3 2025-03-27 15:54:30 +07:00
Alex fecf3809a6
fix(server): album count does not account for assets without exif (#17150)
* fix(server): album count doesn't accounted for assets without exif

* sql
2025-03-26 21:24:22 +07:00
github-actions 2f8725c66f chore: version v1.130.2 2025-03-26 15:34:54 +07:00
Jonathan Jogenfors 9fbd6369b9
fix(server): check asset against multiple import paths (#17128)
* fix sql logic

* refactor: map import paths into not or sql statements

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-03-26 10:10:53 +07:00
Mert 75df8fc10e
refactor(server): bulk update exif (#17109)
* bulk update exif

* update sql

* update tests

* check job queeuing in test
2025-03-25 21:24:24 +07:00
github-actions 4cf7c55680 chore: version v1.130.1 2025-03-25 20:25:01 +07:00
renovate[bot] aa4d6405f4
chore(deps): update base-image to v202503251114 (major) (#17085)
* chore(deps): update base-image to v202503251114

* fix: geocoding changes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-03-25 20:15:02 +07:00
github-actions 42b1efb679 chore: version v1.130.0 2025-03-25 13:48:45 +07:00
Alex 21954939cf
chore: remove limit in memory generation (#16920)
* chore: remove limit in memory generation

* generate sql

* chore: assets limit
2025-03-20 13:31:51 +07:00
renovate[bot] 1a0a9ef36c
chore(deps): update base-image to v202503182202 (major) (#16968)
chore(deps): update base-image to v202503182202

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 00:28:32 +07:00
renovate[bot] db8155f738
fix(deps): update typescript-projects (#16945)
* fix(deps): update typescript-projects

* fix: very weird variables

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-03-18 20:29:21 +07:00
Dmitry Vakhnenko d7a6e78bf0
fix(server): /api/stacks does not handles primaryAssetId query param (#16868)
fix(server): add missing validation decorator
2025-03-18 11:54:50 +07:00
Mert 9f46ba8eb4
fix(server): set pixel format when scaling and not tonemapping (#16932)
set pixel format when scaling and not tonemapping
2025-03-18 11:42:09 +07:00
Andreas fe19f9ba84
fix(web): asset selection on memories page is broken (#16759)
* 16712: Proper intialisation of the memory store to avoid loading up duplicate object refs of the same asset.

* 16712: Add auth to memory mapping so isFavorite is actually return correctly from the server.

* 16712: Move logic that belongs in the store into the store.

* 16712: Cleanup.

* 16712: Fix init behaviour.

* 16712: Add comment.

* 16712: Make method private.

* 16712: Fix import.

* 16712: Fix format.

* 16712: Cleaner if/else and fix typo.

* fix: icon size mismatch

* 16712: Fixed up state machine managing memory playback:
* Updated to `Tween` (`tweened` was deprecated)
* Removed `resetPromise`. Setting progressController to 0 had the same effect, so not really sure why it was there?
* Removed the many duplicate places the `handleAction` method was called. Now we just called it on `afterNavigate` as well as when `galleryInView` or `$isViewing` state changes.

* 16712: Add aria tag.

* 16712: Fix memory player duplicate invocation bugs. Now we should only call 'reset' and 'play' once, after navigate/page load. This should hopefully fix all the various bugs around playback.

* 16712: Cleanup

* 16712: Cleanup

* 16712: Cleanup

* 16712: Cleanup

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-03-18 11:34:09 +07:00
renovate[bot] b609f35841
chore(deps): update base-image to v20250318 (major) (#16950)
* chore(deps): update base-image to v20250318

* chore

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-18 11:07:11 +07:00
renovate[bot] 6c2985df26
chore(deps): update dependency @types/node to ^22.13.10 (#16944)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 12:15:07 +07:00
Jason Rasmussen 6a40aa83b7
refactor: better types for getList and getDeletedAfter (#16926) 2025-03-17 15:32:12 +07:00
Abhinav Valecha d0e283f687
feat(server): version command for immich-admin #9611 (#16924)
* feat(server): Add version command for immich-admin #9611

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-03-17 17:57:59 +07:00
Yoni Yang 14c3b99c0f
feat(ml): ML on Rockchip NPUs (#15241) 2025-03-17 12:04:08 +07:00
Jason Rasmussen 16fd19994b
refactor: use factory and kysely types for partner repository (#16812) 2025-03-11 16:29:56 +07:00
Jonathan Jogenfors 6bb0aa217c
fix(server): set unit test timezone to UTC (#16805) 2025-03-11 10:19:33 +07:00
renovate[bot] ba9e3715f0
chore(deps): update base-image to v20250311 (major) (#16803)
chore(deps): update base-image to v20250311

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-11 12:24:31 +07:00
Lorenzo Montanari d7e0f0e70e
feat(web): exposed a job to manually trigger database backup procedures (#16622)
* feat(web): exposed a new job to create a manual database backup

* chore(server): added a new test case

* chore(server): moved job to backup db into the create job popup

* remove irrelevant change

* openapi

* chore: formatting

* docs: trigger backup documentation

---------

Co-authored-by: Lorenzo Montanari <13736036+l0ll098@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Zack Pollard <zack@futo.org>
2025-03-11 11:30:43 +07:00
renovate[bot] 8cd5aec4c5
chore(deps): update dependency @types/node to ^22.13.9 (#16792)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-10 22:43:16 +07:00
Jason Rasmussen 1382b27349
refactor: repository mocks (#16785) 2025-03-10 16:52:44 +07:00
Jason Rasmussen 1b35400043
chore: remove unused package (#16777) 2025-03-10 14:50:32 +07:00