Commit graph

3061 commits

Author SHA1 Message Date
Daimolean
b054e9dc2c
feat(web): granular api access controls (#18179)
* feat: api access control

* feat(web): granular api access controls

* fix test

* fix e2e test

* fix: lint

* pr feedback

* merge main + new design

* finalize styling

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-28 13:16:43 -05:00
Sergey Katsubo
9677eb37e1
feat(server): log failed healthchecks to server container stderr in verbose mode (#18709)
* Log failed healthchecks to server container stderr in verbose mode

* Formatting: indentation, semicolons

* Readability: less escaping
2025-05-28 12:13:04 -05:00
Mert
3f08768854
chore: vchord 0.4.1 (#18588)
* vchord 0.4.x

* oops

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-28 14:38:52 +00:00
renovate[bot]
a40d35555f
chore(deps): update typescript-projects (#18697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-28 13:09:44 +02:00
github-actions
58ae77ec92 chore: version v1.134.0 2025-05-27 16:47:49 +00:00
Mert
4794a1a092
fix(server): handle startup reindexing after failed model change (#18688)
drop constraint
2025-05-27 11:36:30 -05:00
renovate[bot]
724a081bb5
fix(deps): update typescript-projects (#18681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 18:00:45 +02:00
Mert
e2720e85bb
fix(server): handle period in database name (#18590) 2025-05-27 16:05:13 +01:00
renovate[bot]
a3404cf420
fix(deps): update typescript-projects (#18671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-05-27 17:00:29 +02:00
Daniel Dietzler
5268dc4ee2
feat: version check endpoint (#18572) 2025-05-27 09:33:23 -05:00
Daimolean
79d760ccd7
fix(server): reverse isTrash field (#18665) 2025-05-27 16:22:09 +02:00
renovate[bot]
93e53f6d74
chore(deps): update node.js to v22.16.0 (#18662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 12:13:30 +02:00
renovate[bot]
d8f0a69dc8
chore(deps): update node (#18661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 12:12:37 +02:00
Alex
911c877e72
feat: clean up memory with locked assets (#18532) 2025-05-24 07:31:25 -05:00
github-actions
54bafccbf9 chore: version v1.133.1 2025-05-23 17:37:44 +00:00
Mert
bc8e08f5e8
feat: lower disk usage during migration (#18440)
feat: less disk usage during migration
2025-05-22 08:41:10 +01:00
Mert
58c1b92816
fix(server): missing button for duplicate detection not working (#18433)
qualify column
2025-05-21 21:27:28 +00:00
github-actions
55adc136c8 chore: version v1.133.0 2025-05-21 19:47:42 +00:00
Jason Rasmussen
cd288533a1
feat: sync albums and album users (#18377) 2025-05-21 14:35:32 -05:00
Mert
bc906f7343
chore: specify vchord version in ci (#18423) 2025-05-21 13:41:14 -04:00
Mert
760b08506a
chore: tighten vchord version range (#18420)
guard minor version
2025-05-21 13:03:53 -04:00
Mert
493b9b7a54
fix(server): use preview path for person thumbnails from videos (#18419)
use preview path for person thumbnails from videos
2025-05-21 11:15:30 -05:00
Mert
a02fe89ec9
fix(server): drop old extension (#18400) 2025-05-21 09:53:40 -04:00
renovate[bot]
98e998e814
fix(deps): update typescript-projects (#18402)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-21 11:42:41 +02:00
renovate[bot]
b83b28cd73
fix(deps): update typescript-projects (#18390)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-05-20 22:40:30 +00:00
Alex
bdf19ce331
fix: TimelineAsset visibility (#18395)
* fix: TimelineAsset visibility

* fix enum values
2025-05-20 15:53:34 +00:00
renovate[bot]
d1e6682df0
chore(deps): update dependency @types/node to ^22.15.18 (#18387)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-20 15:15:10 +01:00
renovate[bot]
965498d19b
chore(deps): update node.js to v22.15.1 (#18388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-20 15:14:59 +01:00
Mert
a6a4dfcfd3
fix(server): queueing for duplicate detection (#18380)
* fix queueing

* update tests
2025-05-20 08:44:39 -05:00
Mert
0d773af6c3
feat: vectorchord (#18042)
* wip

auto-detect available extensions

auto-recovery, fix reindexing check

use original image for ml

* set probes

* update image for sql checker

update images for gha

* cascade

* fix new instance

* accurate dummy vector

* simplify dummy

* preexisiting pg docs

* handle different db name

* maybe fix sql generation

* revert refreshfaces sql change

* redundant switch

* outdated message

* update docker compose files

* Update docs/docs/administration/postgres-standalone.md

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

* tighten range

* avoid always printing "vector reindexing complete"

* remove nesting

* use new images

* add vchord to unit tests

* debug e2e image

* mention 1.107.2 in startup error

* support new vchord versions

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-05-20 08:36:43 -05:00
Min Idzelis
e7edbcdf04
feat(server): lighter buckets (#17831)
* feat(web): lighter timeline buckets

* GalleryViewer

* weird ssr

* Remove generics from AssetInteraction

* ensure keys on getAssetInfo, alt-text

* empty - trigger ci

* re-add alt-text

* test fix

* update tests

* tests

* missing import

* feat(server): lighter buckets

* fix: flappy e2e test

* lint

* revert settings

* unneeded cast

* fix after merge

* Adapt web client to consume new server response format

* test

* missing import

* lint

* Use nulls, make-sql

* openapi battle

* date->string

* tests

* tests

* lint/tests

* lint

* test

* push aggregation to query

* openapi

* stack as tuple

* openapi

* update references to description

* update alt text tests

* update sql

* update sql

* update timeline tests

* linting, fix expected response

* string tuple

* fix spec

* fix

* silly generator

* rename patch

* minimize sorting

* review

* lint

* lint

* sql

* test

* avoid abbreviations

* review comment - type safety in test

* merge conflicts

* lint

* lint/abbreviations

* remove unncessary code

* review comments

* sql

* re-add package-lock

* use booleans, fix visibility in openapi spec, less cursed controller

* update sql

* no need to use sql template

* array access actually doesn't seem to matter

* remove redundant code

* re-add sql decorator

* unused type

* remove null assertions

* bad merge

* Fix test

* shave

* extra clean shave

* use decorator for content type

* redundant types

* redundant comment

* update comment

* unnecessary res

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-19 16:40:48 -05:00
Daimolean
dc8962f2bc
fix(server): select main stream according to bitrate (#18375)
* fix main stream

* update unit tests

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-05-19 17:33:28 -04:00
Geoffrey Frogeye
00a77c2d6a
feat(server): sort images in duplicate groups by date (#18347)
This restores behaviour introduced in
562fec6e2b and lost in
2e12c46980.
2025-05-19 17:27:30 -04:00
Zack Pollard
230c286b97
chore: cleanup extraneous memories job item definition (#18372) 2025-05-19 14:02:44 +00:00
koostamas
b63d6cdcd6
feat: bulk change description (#18288)
Co-authored-by: Tamas Koos <ext_tamas.koos@btrl.ro>
2025-05-17 12:17:00 +02:00
Mert
48d746d9d5
refactor(server): "on this day" memory creation (#18333)
* refactor memory creation

* always update system metadata

* maybe fix medium tests
2025-05-16 13:16:27 -04:00
Jason Rasmussen
28d8357cc5
feat(web): clear person birthdate (#18330) 2025-05-16 11:56:25 -04:00
Jason Rasmussen
c1150fe7e3
feat: lock auth session (#18322) 2025-05-15 18:08:31 -04:00
Brandon Wees
6117329057
feat: add session creation endpoint (#18295) 2025-05-15 13:34:33 -05:00
Alex
b7b0b9b6d8
feat: locked/private view (#18268)
* feat: locked/private view

* feat: locked/private view

* pr feedback

* fix: redirect loop

* pr feedback
2025-05-15 15:35:21 +00:00
Mert
709a7b70aa
chore: no sql generation for queries with side effects (#18301)
no sql generation for queries with side effects
2025-05-15 03:34:22 +00:00
Mert
6a4d21205f
fix(server): do not filter out assets without preview path for person thumbnail generation (#18300)
* allow assets without preview path

* update sql

* Update person.repository.ts

Co-authored-by: Jason Rasmussen <jason@rasm.me>

* update sql, e2e

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-05-15 03:23:34 +00:00
Mert
3a0ddfb92d
fix(server): vacuum after deleting people (#18299)
* vacuum after deleting people

* update sql
2025-05-14 23:13:13 -04:00
renovate[bot]
ca06d0aa83
chore(deps): update base-image (major) (#18256)
chore(deps): update base-image

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 13:54:49 -04:00
Daimolean
dccbe0b3ed
fix(web): user details (#18253)
fix(server, web): user details
2025-05-13 07:55:58 -04:00
renovate[bot]
c0ad12f279
fix(deps): update typescript-projects (#18251)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-05-13 13:31:33 +02:00
renovate[bot]
9c484b23a9
chore(deps): update dependency @types/picomatch to v4 (#18257)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 12:33:15 +02:00
renovate[bot]
eed014482d
chore(deps): update dependency @types/node to ^22.15.16 (#18249)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 12:32:48 +02:00
renovate[bot]
d271e6a3ae
chore(deps): update node.js to v22.15.0 (#18250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 12:09:41 +02:00
Jason Rasmussen
3066c8198c
feat(web): user detail page (#18230)
feat: user detail page
2025-05-12 16:50:26 -04:00
renovate[bot]
a89f3ad97c
fix(deps): update typescript-projects (#18133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 13:07:20 +02:00
Alex
3f719bd8d7
feat: user pin-code (#18138)
* feat: user pincode

* pr feedback

* chore: cleanup

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-05-09 17:00:58 -04:00
Zack Pollard
cb6c541ae1
fix: constraint migration to handle any existing pkey name (#18178) 2025-05-09 13:45:44 +00:00
luzpaz
b1e1362246
fix: various typos (grouped in to separate commits) (#18177) 2025-05-09 13:10:34 +00:00
Jason Rasmussen
a6e5e4f625
fix: schema ci checks (#18146) 2025-05-07 21:14:20 +00:00
SGT
ec6379b0b2
chore: remove usage of deprecated Kysely method (#18127)
* minor update. fix usage of deprecated method'

* restore original formatting
2025-05-06 17:01:02 -04:00
Mert
2a80251dc3
fix(server): more robust person thumbnail generation (#17974)
* more robust person thumbnail generation

* clamp bounding boxes

* update sql

* no need to process invalid images after decoding

* cursed knowledge

* new line
2025-05-06 14:18:22 -04:00
Alex
d33ce13561
feat(server): visibility column (#17939)
* feat: private view

* pr feedback

* sql generation

* feat: visibility column

* fix: set visibility value as the same as the still part after unlinked live photos

* fix: test

* pr feedback
2025-05-06 12:12:48 -05:00
renovate[bot]
8ff25a4f7a
fix(deps): update dependency @react-email/components to ^0.0.37 (#18126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 18:23:45 +02:00
David Cruz
7072e48cbe
feat: Add DB_SSL_MODE environment variable for Postgres sslmode (#18025)
* feat: Add DB_SSL_MODE environment variable for Postgres sslmode

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-05-06 09:25:37 -04:00
renovate[bot]
30822fcd10
fix(deps): update typescript-projects (#18124)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 14:50:22 +02:00
Jovan Gerodetti
118a3fc9db
fix: update assets when duplicateId is provided as null (#18071)
Update assets when duplicateId is provided as null
2025-05-06 08:47:19 -04:00
Jason Rasmussen
f34f83e164
refactor: controller tests (#18100) 2025-05-05 18:57:32 -04:00
Sergey Katsubo
12610e4a9f
fix(server): handle orientation of imported face regions (#18021)
* Transform imported face RegionInfo according to Exif Orientation

* Add unit tests for re-orienting metadata face regions

* Make code DRY using ImmichTagsWithFaces instead of NonNullable

* Add e2e test for importing metadata face regions when orientation is RotateCW90

* Disable new e2e test until its asset is added to the test-assets project

* Simplify unit tests by using the same face tag definition

* Combine similar e2e tests

* Disable new e2e test until portrait-orientation-6.jpg is added to test-assets

* Fix lint error: Expected property shorthand

* Update test-assets ref to latest

* Enable new e2e test after updating test-assets
2025-05-05 11:11:21 -04:00
Jason Rasmussen
ea9f11bf39
refactor: controller tests (#18035)
* feat: controller unit tests

* refactor: controller tests
2025-05-03 09:39:44 -04:00
Jason Rasmussen
5d21ba3166
chore: logging clean up (#18031) 2025-05-02 12:34:35 -05:00
Thomas
da7a81b752
chore(server): split album update notifications into multiple jobs (#17879)
We would like to move away from the concept of finding and removing pending
jobs. The only place this is used is for album update notifications, and this
is done so that users who initially uploaded assets to an album will also
receive a notification if someone else then adds assets to the same album. This
can also be achieved with a job for each recipient. Multiple jobs also has the
advantage that it will scale better for albums with many users, it's possible
to send notifications concurrently, retries are possible without sending
duplicate notifications, and it's clear what recipient a job failed for.
2025-04-30 17:45:35 -04:00
Jason Rasmussen
becdc3dcf5
refactor: job on-done (#18004) 2025-04-30 17:02:53 -04:00
Eli Gao
84b51e3cbb
fix(server): double rotation on HEIF files (#18002)
* fix(server): double rotation on HEIF/HEIC files

* Update server/src/services/media.service.ts

* formatting

---------

Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
2025-04-30 20:33:18 +00:00
Jason Rasmussen
b845184c80
chore: remove old memory lane implementation (#18000) 2025-04-30 14:23:32 -04:00
Jason Rasmussen
1fde02ee1e
chore: remove unused types and code (#17999) 2025-04-30 13:41:23 -04:00
Jason Rasmussen
526c02297c
refactor: stream queue migration (#17997) 2025-04-30 16:23:13 +00:00
Alex
732b06eec8
refactor: stream for sidecar (#17995)
* refactor: stream for sidecar

* chore: make sql

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-04-30 10:53:51 -05:00
Jason Rasmussen
be5cc2cdf5
refactor: stream detect faces (#17996) 2025-04-30 11:25:30 -04:00
Jason Rasmussen
094a41ac9a
chore: remove audit file report (#17994) 2025-04-30 11:17:23 -04:00
Jason Rasmussen
0c261ffbe2
fix: queue in batches (#17989) 2025-04-30 10:52:51 -04:00
Jason Rasmussen
8c5116bc1d
refactor: stream search duplicates (#17991) 2025-04-30 10:40:32 -04:00
Jason Rasmussen
2e8a286540
refactor: smart search queue (#17977) 2025-04-29 17:44:28 -04:00
Jason Rasmussen
d89e88bb3f
feat: configure token endpoint auth method (#17968) 2025-04-29 15:17:48 -04:00
Thomas
3ce353393a
chore(server): don't insert embeddings if the model has changed (#17885)
* chore(server): don't insert embeddings if the model has changed

We're moving away from the heuristic of waiting for queues to complete. The job
which inserts embeddings can simply check if the model has changed before
inserting, rather than attempting to lock the queue.

* more robust dim size update

* use check constraint

* index command cleanup

* add create statement

* update medium test, create appropriate extension

* new line

* set dimension size when running on all assets

* why does it want braces smh

* take 2

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-04-29 14:23:01 -04:00
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 +02: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 +02: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 -04:00
Daniel Dietzler
f621f8ef2c
refactor: more job queries (#17745) 2025-04-29 00:03:20 +02: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 -04:00
Jason Rasmussen
ad272333db
refactor: user avatar color (#17753) 2025-04-28 08:54:51 -05:00
Zack Pollard
460d594791
feat: api response compression (#17878) 2025-04-28 08:54:11 -05:00
github-actions
02994883fe chore: version v1.132.3 2025-04-25 19:44:05 +00:00
github-actions
0d60be3d87 chore: version v1.132.2 2025-04-25 03:07:06 +00:00
Jason Rasmussen
1d610ad9cb
refactor: database connection parsing (#17852) 2025-04-24 12:58:29 -04:00
github-actions
37f5e6e2cb chore: version v1.132.1 2025-04-23 21:43:47 +00: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 -04:00
github-actions
f659ef4b7a chore: version v1.132.0 2025-04-23 16:44:47 +00:00
Zack Pollard
d2f2f8d672
fix: retrieve version from lockfile and fallback to cli command (#17812) 2025-04-23 17:10:43 +01:00
Zack Pollard
19746a8685
fix: cache build versions (#17811) 2025-04-23 16:31:18 +01: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 +00:00
Jason Rasmussen
1b5e981a45
fix: failing ci checks (#17810) 2025-04-23 10:59:54 -04: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 +01: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 +00:00
Mert
92ac1193e6
fix(server): queue android motion assets for transcoding (#17781) 2025-04-23 12:03:28 +01:00
Min Idzelis
2a95eccf6a
fix: vscode vitest ext - missing jsdom dev dependency (#17799) 2025-04-22 23:01:22 -04: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 +00:00
Bonne Eggleston
fe8c5e8107
feat: add album start and end dates for storage template (#17188) 2025-04-21 19:54:33 -04:00
Jason Rasmussen
56a4aa9ffe
refactor: email repository (#17746) 2025-04-21 12:53:37 -04:00
Jason Rasmussen
488dc4efbd
refactor: notification-admin controller (#17748) 2025-04-21 10:49:26 -04:00
Daniel Dietzler
dd1fcd5be5
chore: remove asset entity (#17703) 2025-04-18 21:39:56 +00:00
Daniel Dietzler
52ae06c119
refactor: remove album entity, update types (#17450) 2025-04-18 23:10:34 +02:00
Daniel Dietzler
854ea13d6a
chore: simplify asset getByIds (#17699) 2025-04-18 16:52:41 -04: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 -05:00
Jason Rasmussen
6474a78b8b
feat: initial kysely migration file (#17678) 2025-04-17 17:38:47 -04:00
Jason Rasmussen
e275f2d8b3
feat: add foreign key indexes (#17672) 2025-04-17 14:41:06 -04: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 -04:00
Jonathan Jogenfors
ed2b54527c
chore(server): don't check null dates (#17664) 2025-04-16 18:40:08 -04:00
Daniel Dietzler
8b38f8a58d
fix: do not select album in time bucket query (#17662) 2025-04-16 17:52:22 -04:00
yparitcher
29b30570bf
fix: use IMMICH_HOST in microservices (#17659) 2025-04-16 23:05:12 +02:00
Daniel Dietzler
586a7a173b
refactor: handle detect faces job query (#17660) 2025-04-16 22:52:54 +02:00
Daniel Dietzler
1bbfacfc09
refactor: more job query stuff (#17658) 2025-04-16 22:10:20 +02:00
Daniel Dietzler
85c2d36d99
refactor: dedicated get album thumbnail files query (#17657) 2025-04-16 21:10:27 +02:00
Jason Rasmussen
8cefa0b84b
refactor: migrate some e2e to medium (#17640) 2025-04-16 14:59:08 -04:00
Daniel Dietzler
f50e5d006c
refactor: dedicated queries for asset jobs (#17652) 2025-04-16 14:08:49 -04:00
Nils Uliczka
be2f670d35
fix: skip places that no longer exist in geo import (#17637) 2025-04-15 21:27:47 +00:00
Jason Rasmussen
8da5f21fcf
refactor: medium tests (#17634) 2025-04-15 15:54:23 -04: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 -04:00
Daniel Dietzler
21becbf1b0
refactor: dedicated query for asset migration job (#17631) 2025-04-15 15:49:15 -04:00
Daniel Dietzler
5bceefce75
refactor: stream assets for thumbnail job (#17623) 2025-04-15 19:53:28 +02:00
Jason Rasmussen
b710ad36f3
feat: upgrade kysely (#17630)
* feat: upgrade kysely

* chore: pr feedback
2025-04-15 13:26:56 -04:00
Daniel Dietzler
270d178a2e
fix: unsafe cast (#17590) 2025-04-15 11:35:00 -05:00
Daniel Dietzler
309528c807
chore: upgrade package locks (#17626) 2025-04-15 11:34:21 -05: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 +00: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 -04:00
Jason Rasmussen
f189c7b101
refactor: medium tests (#17599) 2025-04-15 08:53:14 -04: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 +01:00
Mert
c3d10c5be2
refactor(server): non-nullable file metadata (#17598) 2025-04-15 12:03:31 +01:00
Jason Rasmussen
b2753103c6
chore: remove unused logger (#17593) 2025-04-14 15:01:49 -04:00
Daniel Dietzler
0b69d1c147
refactor: selected columns in queries (#17589) 2025-04-14 13:34:06 -05:00
Daniel Dietzler
184e142d87
refactor: migrate asset job status entity (#17560) 2025-04-14 12:21:56 +02:00
Andreas Tollkötter
8b00578c7b
fix: read longitude and latitude when reverse geocoding is off (#17558) 2025-04-14 10:43:46 +01: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 -04:00
Daniel Dietzler
a373034629
refactor: migrate stacks (#17559)
chore: migrate stacks
2025-04-12 08:33:35 -04: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 +02:00
Daniel Dietzler
5548eb0dad
fix: live photo hiding (#17548) 2025-04-11 17:09:58 -05: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 -04: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 -05:00
Jason Rasmussen
584e5894bf
refactor: user factories instead of stubs (#17540) 2025-04-11 11:53:37 -04:00
Jason Rasmussen
75c83cb704
refactor: metadata stub (#17532) 2025-04-10 21:58:55 +02:00
Jason Rasmussen
0b22d3348e
refactor: count all return type (#17529) 2025-04-10 14:38:49 -04:00
Jason Rasmussen
eaa0e07329
refactor: asset files entity (#17527) 2025-04-10 13:26:27 -04: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 -05:00
Jason Rasmussen
4412680679
refactor: remove unused shared users list (#17526) 2025-04-10 11:44:47 -05: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 -04:00
Daniel Dietzler
7a1e8ce6d8
chore: remove exif entity (#17499) 2025-04-10 12:36:29 -04:00
Jason Rasmussen
8aea07b750
refactor: album user entity (#17524) 2025-04-10 11:53:21 -04:00
Zack Pollard
94dba29298
refactor: remove user entity (#17498) 2025-04-10 10:53:21 -04:00
Zack Pollard
d03647904b
refactor: remove move entity (#17489) 2025-04-09 11:54:20 -04:00
Jason Rasmussen
206545356d
refactor: metadata entity (#17492) 2025-04-09 11:45:30 -04: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 +00:00
Jason Rasmussen
8943ec23ba
refactor: more database types (#17490) 2025-04-09 10:24:38 -04: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 -04:00
Alex
ae8af84101
fix: no thumbnail generated for motion assets (#17472) 2025-04-08 16:07:10 -05:00
Jason Rasmussen
4794eeca88
refactor: database types (#17468) 2025-04-08 12:40:03 -04:00
Alex
e5ca79dd44
refactor: remove session entity (#17466)
* refactor: remove session entity

* fix: test

* update sql

* remote export
2025-04-08 16:04:07 +00:00
Jason Rasmussen
49be6d7fd8
refactor: more database enums (#17465) 2025-04-08 12:02:05 -04:00
Daniel Dietzler
15c6506aee
fix: broken start/end dates on album update (#17467) 2025-04-08 15:47:44 +00:00
Jason Rasmussen
2c31a11e41
chore: replace generated enums with actual types (#17463) 2025-04-08 11:13:46 -04:00
Jason Rasmussen
b6c5a03533
refactor: remove tag entity (#17462) 2025-04-08 10:52:54 -04:00
Jason Rasmussen
fdbe6d649f
refactor: remove smart search entity (#17447)
refactor: smart search entity
2025-04-08 09:56:45 -04: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 +02: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 -04:00
Jason Rasmussen
8203b6c450
refactor: stop using geodata entity type (#17444) 2025-04-08 00:15:43 -04:00
Jason Rasmussen
b352cf3336
refactor: remove natural earth countries enity (#17445) 2025-04-08 00:15:16 -04: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 -04: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 -05: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 +01:00
Zack Pollard
40cff2893c
fix: metadata service init failure should halt server startup (#17356) 2025-04-03 12:35:39 +01: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 -05:00
github-actions
00d3b8d83a chore: version v1.131.3 2025-04-01 22:27:52 +00: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 -05: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 -05: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 -04:00
bo0tzz
3e03c47fbf
fix: strip extra metadata when transcoding (#17297) 2025-04-01 08:58:59 -05:00
github-actions
9aa3850769 chore: version v1.131.2 2025-04-01 11:41:56 +00: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 +00: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 +02: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 +02:00
github-actions
7729fe80fa chore: version v1.131.1 2025-03-31 20:36:48 +00:00
martin
68e24ad168
fix: posix compliant command (#17264) 2025-03-31 16:35:02 -04:00
Jason Rasmussen
186c573565
fix: missing migration folder broke non-root setups (#17266) 2025-03-31 20:18:13 +00:00
github-actions
5b63b9fc8b chore: version v1.131.0 2025-03-31 18:41:13 +00: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 -04:00
Mert
6789c2ac19
feat(ml): better multilingual search with nllb models (#13567) 2025-03-31 11:06:57 -04: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 -05:00
Mert
8c50e3e80e
feat(server): consider JpgFromRaw2 tag for embedded previews (#17123)
* add jpgfromraw2

* unused catch
2025-03-31 09:17:57 -05:00
Jonathan Jogenfors
efcb1129ce
fix(server): don't sync null date assets (#17247) 2025-03-31 09:16:53 -05:00
Jonathan Jogenfors
faabda4446
fix(server): multiple exclusion patterns (#17221) 2025-03-31 09:16:30 -05: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 -05: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 +01: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 +00: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 +00:00
Daniel Dietzler
238c151ac3
chore: finish migrating eslint config files; bump unicorn (#17200) 2025-03-31 12:18:25 +01: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 +01:00
Jason Rasmussen
55a3c30664
feat: kysely migrations (#17198) 2025-03-29 09:26:24 -04: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 +01:00
Jason Rasmussen
4b4bcd23f4
feat: schema diff sql tools (#17116) 2025-03-28 10:40:09 -04: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 +00:00
github-actions
43f8f473e9 chore: version v1.130.3 2025-03-27 15:54:30 +00: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 -05:00
github-actions
2f8725c66f chore: version v1.130.2 2025-03-26 15:34:54 +00: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 -05: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 +00:00
github-actions
4cf7c55680 chore: version v1.130.1 2025-03-25 20:25:01 +00: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 +00:00
github-actions
42b1efb679 chore: version v1.130.0 2025-03-25 13:48:45 +00: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 -05: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 -04: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 +00: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 -05: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 -05: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 -05: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 -05: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 +01:00
Jason Rasmussen
6a40aa83b7
refactor: better types for getList and getDeletedAfter (#16926) 2025-03-17 15:32:12 -04: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 +00:00
Yoni Yang
14c3b99c0f
feat(ml): ML on Rockchip NPUs (#15241) 2025-03-17 12:04:08 -04:00
Jason Rasmussen
16fd19994b
refactor: use factory and kysely types for partner repository (#16812) 2025-03-11 16:29:56 -04:00
Jonathan Jogenfors
6bb0aa217c
fix(server): set unit test timezone to UTC (#16805) 2025-03-11 10:19:33 -04: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 +00: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 +00: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 -04:00
Jason Rasmussen
1382b27349
refactor: repository mocks (#16785) 2025-03-10 16:52:44 -04:00
Jason Rasmussen
1b35400043
chore: remove unused package (#16777) 2025-03-10 14:50:32 -04:00
Jason Rasmussen
a96bba4b26
feat: sync assets, partner assets, exif, and partner exif (#16658)
* feat: sync assets, partner assets, exif, and partner exif

Co-authored-by: Zack Pollard <zack@futo.org>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>

* refactor: remove duplicate where clause and orderBy statements in sync queries

* fix: asset deletes not filtering by ownerId

---------

Co-authored-by: Zack Pollard <zack@futo.org>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-03-10 12:05:39 -04:00
Jason Rasmussen
e97df503f2
refactor: api key spec to use factories (#16776) 2025-03-10 12:04:35 -04:00
Snowknight26
2f8e89c7ec
feat(server): read Android and Sony video camera make/model (#16678)
* feat(server): read Android and Sony video camera exif data

* Remove a logger line
2025-03-09 22:20:11 -05:00
David Bourgault
9870ad9687
fix(server): adjust type of person.birthDate (#16628)
The API currently does not respect the documentation when returning a
person's birthDate. The doc/swagger says it will be of "YYYY-MM-DD"
format but the string is a full ISO8601-with-tz string. This causes
issue #16216 because the <input> tag is strict about supported value
formats.

I believe this was introduced by #15242 which switched some queries from
TypeORM to Kysely for the person repository. TypeORM does not parse
date, but our Kysely configuration does (explicitely).

This commits updates the types to represent both possibilities and ensure
the API always returns the correct format.
2025-03-09 21:32:05 -05:00
Daniel Dietzler
573d9a7733
fix: 🍪 packages confusion (#16735)
fix: cookie packages confusion
2025-03-09 21:03:10 -05:00
Jason Rasmussen
1e127ae3a1
refactor: migrate library spec to factories (#16711) 2025-03-08 13:44:36 -05:00
Jason Rasmussen
fd46d43726
chore: remove unused file (#16707) 2025-03-07 22:47:27 -06:00
Jason Rasmussen
3f06a494a9
refactor: queue asset deletes via stream (#16706) 2025-03-07 22:22:57 +00:00
renovate[bot]
086d8a448a
fix(deps): update typescript-projects (#16597)
* fix(deps): update typescript-projects

* chore: update server lock file

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-03-07 21:20:45 +00:00
bo0tzz
8ace44fb95
feat: log before running migrations (#16703)
* feat: log before running migrations

* fix: it's called log not info

It should be called info...

* chore: fix formatting

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-07 21:15:06 +00:00
Jason Rasmussen
ce74f765b1
refactor: memory stub (#16704) 2025-03-07 16:03:34 -05:00
Jason Rasmussen
2d106755f6
refactor: convert activity stub to a factory (#16702) 2025-03-07 15:20:04 -05:00
Jason Rasmussen
f82786a297
feat: use stream for template migrations (#16700) 2025-03-07 14:30:01 -05:00
Jonathan Jogenfors
9959755dda
refactor(server): use constant for external library batch size (#16685) 2025-03-07 11:29:06 +00:00
Jason Rasmussen
d45fa491ce
refactor: stream asset ids for library queue jobs (#16666) 2025-03-06 20:22:17 -05:00
Matthew Momjian
5c82c485d7
feat(server): normalize extensions in storage template (#16667)
* normalize and lowercase extensions

* un const

* do not change ext before stripping off old one

* braces
2025-03-06 18:02:28 -05:00
Jason Rasmussen
2cdbb0a37c
refactor: database repository (#16593)
* refactor: database repository

* fix error reindex check

* chore: remove WIP code

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-03-06 13:33:24 -05:00
Mert
deb399ea15
refactor(server): use exiftool for file date metadata (#16453)
* use exiftool for file date metadata

* handle tag not existing in exifinfo (?)

* update medium tests

* fix typo

* set file size too

* set file size only if undefined
2025-03-06 16:47:12 +00:00
Jonathan Jogenfors
3af26ee94a
feat(server): library refresh go brrr (#14456)
* feat: brr

---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-03-06 16:00:18 +01:00
Mert
bc61497461
refactor(server): group async calls in metadata extraction (#16450)
* group async calls

use debugFn

no need to change mock

* check call count in tests
2025-03-06 08:56:35 -06:00
rrrockey
d84009648e
refactor(server): replace switch statement in sendFile with Record lookup (#16630)
* refactor cache control handling in server/utils/file.ts

* add ability to null CacheControl.NONE

* Cache control handling comment

* Added comment to file.ts

This comment provides a better understanding of what the cacheControlHeader is doing.

* Update file.ts

Added comments

* Update server/src/utils/file.ts

* fix comments in file.ts

* run prettier with --write to fix formatting

---------

Co-authored-by: pnleguizamo <pnleguizamo@gmail.com>
Co-authored-by: drew-kearns <dkearns@iastate.edu>
Co-authored-by: Sierra (Izumi) Brown <119357873+SierraIBrown@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-06 12:46:37 +01:00
github-actions
31dd15ce8a chore: version v1.129.0 2025-03-05 19:47:50 +00:00
Zack Pollard
9922c8de59
fix: storage template failure after re-upload and previous fail (#16611)
fix: storage template breaks when files are re-uploaded after a move failure
2025-03-05 15:00:37 +00:00
Jason Rasmussen
2da9e3152b
refactor: download service (#16600) 2025-03-05 08:38:23 -05:00
Jonathan Jogenfors
22d348beca
feat(server): e2e for missing jobs (#15910)
* feat: test face detection

* Add duplicate and smart search fixes and tests

* do e2e instead

* Remove ML e2e jobs
2025-03-04 20:44:31 -05:00
Jason Rasmussen
63c01b78e2
refactor: test utils (#16588) 2025-03-04 16:15:41 +00:00
renovate[bot]
1423cfd53c
chore(deps): update ghcr.io/immich-app/base-server-dev docker tag to v20250304 (#16580)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-04 15:39:34 +00:00
renovate[bot]
75c9f63757
chore(deps): update typescript-projects (#16573)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-04 12:53:28 +00:00
Jason Rasmussen
1356468c38
fix: reset/regenerate memories (#16548)
fix: reset memories
2025-03-03 23:48:05 -05:00
renovate[bot]
0dcfc43461
chore(deps): update node (#16538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 14:31:34 -05:00
Jason Rasmussen
d1fd0076cc
refactor: migration tag repository to kysely (#16398) 2025-03-03 18:41:19 +00:00
renovate[bot]
8b24c31d20
fix(deps): update typescript-projects (#16540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 09:38:24 -06:00
Mert
5698f446f7
refactor(server): link live photos as part of metadata extraction instead of queueing job (#16390)
* link live photos helper instead of job

* update test

* queue storage template migration

* queue in onDone

* remove link live photos job
2025-03-03 09:19:36 -05:00
renovate[bot]
eb74fafb00
chore(deps): update dependency globals to v16 (#16534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 14:11:44 +00:00
renovate[bot]
a99bd94717
fix(deps): update dependency ua-parser-js to v2 (#14301)
* fix(deps): update dependency ua-parser-js to v2

* fix: breaking changes from ua-parsed-js major update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-03-03 12:01:40 +00:00
Alex
a2aab1f373
fix: don't use public keyword in migration query (#16514)
Co-authored-by: Zack Pollard <zack@futo.org>
2025-03-03 11:40:14 +00:00
Zack Pollard
fe702ba6d7
feat: partner sync (#16424)
feat: partner CUD sync
2025-03-03 11:05:30 +00:00
Jonathan Jogenfors
869839f642
feat(server): library cleanup from ui (#16226)
* feat(server,web): scan all libraries from frontend

* feat(server,web): scan all libraries from frontend

* Add button text
2025-03-02 21:29:02 -06:00
Matthew Momjian
efcf773ea0
feat(server): Shortened asset ID in storage template (#16433)
* Update storage-template.service.ts

* Update supported-variables-panel.svelte

* docs example

* Update storage-template-settings.svelte
2025-02-28 16:04:34 -05:00
github-actions
dc143046e3 chore: version v1.128.0 2025-02-28 18:54:08 +00:00
Jason Rasmussen
e684062569
fix: memories off by one (#16434) 2025-02-28 12:51:28 -06:00
Desmond Cox
5c0538e52c
fix(server): stringify error log parameter to ensure correct overload (#16422)
* fix(server): stringify error log parameter to ensure correct overload

The intended error(message, stack, context) overload is only selected if context is a string.

* formatter
2025-02-28 11:50:00 -06:00
Jason Rasmussen
84cf0d1670
fix: duplicate memories (#16432) 2025-02-28 17:49:29 +00:00
Mert
b3b15e9b61
fix(server): include deleted assets if searching offline assets (#16417)
include deleted assets if searching for offline assets
2025-02-28 09:23:18 -06:00
Zack Pollard
819e56d9ca
fix: user delete sync query sort by id (#16420) 2025-02-28 09:22:36 -06:00
Alex
a185e06399
fix(server): follow logs level setting (#16415) 2025-02-28 00:35:48 -05:00
Alex
5c879acd5b
fix(server): don't show assets that no longer associate with a face (#16404) 2025-02-27 17:02:00 -06:00
Jason Rasmussen
fbd85a89e0
refactor: logger (#16393) 2025-02-27 14:59:50 -05:00
Jonathan Jogenfors
d20e2e268a
fix(server): don't reimport files more than once (#16375)
* fix(server) don't reimport files more than once

* fix: test

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-02-27 16:45:16 +00:00
Mert
a708649504
fix(server): skip stacked assets in duplicate detection (#16380)
* skip stacked assets in duplicate detection

* update sql

* handle stacking after duplicate detection runs
2025-02-27 10:16:13 -06:00
Tom Graham
a808b8610e
fix(server): Fix delay with multiple ml servers (#16284)
* Prospective fix for ensuring that known active ML servers are used to reduce search delay.

* Added some logging and renamed backoff const.

* Fix lint issues.

* Update to use env vars for timeouts and updated documentation and strings.

* Fix docs.

* Make counter logic clearer.

* Minor readability improvements.

* Extract  skipUrl logic per feedback, and change log to verbose.

* Make code harder to read.
2025-02-27 10:14:09 -06:00
Mert
6050485ad8
feat(server): set exiftool process count (#16388)
exiftool concurrency control
2025-02-27 09:24:40 -05:00
Zack Pollard
fb907d707d
refactor: use new updateId column for user CUD sync (#16384) 2025-02-27 09:22:02 -05:00
Mert
7d6cfd09e6
fix(server): don't expose source types in face creation api (#16381)
* don't expose source types in face creation api

* update open-api

* remove source type reference from web
2025-02-27 17:17:07 +03:00
Zack Pollard
967c69317b
feat: updateId uuidv7 column for all entities with updatedAt (#16353) 2025-02-27 12:55:22 +00:00
David Bourgault
4b55888d16
fix: ensure manually tagged faces have proper source type (#16364)
immich-app/immich#16062 added manual face tagging and deletion, but did
not add a new 'SourceType'. The create faces would default to
'machine-learning' which is incorrect, and has the annoying downside
that they will be wiped when the 'Refresh Faces' job is run.

Handling of non-machine-learning faces was previously added in
immich-app/immich#6455. This PR simply extends it to the new manually
tagged faces.
2025-02-26 20:53:21 -06:00
github-actions
5f7f88ff17 chore: version v1.127.0 2025-02-26 15:18:50 +00:00
Zack Pollard
5053130e35
fix: sync set ack validation (#16320) 2025-02-26 09:35:51 -05:00
Alex
4ef7eb56a3
fix(server): memory assets order (#16325) 2025-02-25 19:10:52 -06:00
Jason Rasmussen
7c851893b4
feat: medium tests for user and sync service (#16304)
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-02-25 16:31:07 +00:00
Jason Rasmussen
e4b6efc1f5
fix: cross site scripting issue on /share pages (#16255) 2025-02-22 11:32:53 +00:00
Jason Rasmussen
d350022dec
feat: persistent memories (#15953)
feat: memories

refactor

chore: use heart as favorite icon

fix: linting
2025-02-21 12:31:37 -06:00
Alex
007eaaceb9
feat(web): manual face tagging and deletion (#16062) 2025-02-21 09:58:25 -06:00
Mert
616905211d
fix(server): assets in multiple albums duplicated in map view (#16245) 2025-02-21 15:32:08 +03:00
Zack Pollard
ac36effb45
feat: sync implementation for the user entity (#16234)
* ci: print out typeorm generation changes

* feat: sync implementation for the user entity

wip

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-02-20 23:37:57 -05:00
Jason Antwi-Appah
34b88bb47a
feat(web): support searching by EXIF rating (#16208)
* Add rating to search DTO

* Add search by EXIF rating in search query builder

* Generate OpenAPI spec

* Add rating filter on web

* Add rating filter to search docs

* Format / lint

* Hide rating filter if ratings are disabled

* chore: component order in form

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-02-20 16:17:06 +00:00
Jonathan Jogenfors
f6ba071569
feat(server): add path to metadata logging (#16212)
feat(server): Prefer original path instead of id when logging
2025-02-20 09:46:18 -06:00
Jonathan Jogenfors
b0102f8025
fix(server): set modifydate (#16225) 2025-02-20 09:28:30 -06:00
renovate[bot]
376282e538
chore(deps): update dependency @types/node to ^22.13.4 (#16206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-19 14:54:12 -06:00
Jonathan Jogenfors
31dc83f3f2
fix(server): don't warn about missing timezone (#16211)
fix(server): don't warn about timezone
2025-02-19 13:21:13 -06:00
Krassimir Valev
8634c59850
feat(server): search by partial asset path (#16173)
Similarly to how one can search by partial filename, change the
path search to work with partial matches instead of looking for a
full match.

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-02-19 08:32:52 -06:00
renovate[bot]
d8cda6ee40
chore(deps): update base-image to v20250218 (major) (#16204)
chore(deps): update base-image to v20250218

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 16:02:33 -05:00
renovate[bot]
a31bc94460
fix(deps): update typescript-projects (#16203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 21:35:50 +01:00
renovate[bot]
516709ffe1
chore(deps): update dependency @types/node to ^22.13.2 (#16200)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 15:10:44 -05:00
renovate[bot]
425cf62482
fix(deps): update typescript-projects (#16178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-02-18 20:40:09 +01:00
Jonathan Jogenfors
115ee0d6cc
fix(server): remove unused readme (#16175)
fix(server): remove readme
2025-02-17 19:03:43 -05:00
Jason Rasmussen
7c26663013
chore: removed unused endpoint (#16167) 2025-02-17 13:07:50 -06:00
Nick Overacker
50b072803d
fix: limit width of logo in emails to 100% (#16164)
Limit width of logo in emails to 100%

The current live version breaks Yahoo Mail (at least in Firefox). It appears far too large and makes the email unreadable by pushing the text outside of the reading pane.
2025-02-17 17:46:14 +00:00
Mangat Singh Toor | ਮੰਗਤ ਸਿੰਘ ਤੂਰ
1689cecaf7
fix: include live images in person view count (#16116)
* fix: include live images in person view count

Fixed an issue where the total image count in the person view excluded live images.
The query now correctly accounts for all relevant assets by removing the condition
that filtered out assets with a livePhotoVideoId.

Issue:
- Image count under a person’s name was inaccurate, showing only static images.

Fix:
- Removed `.on('assets.livePhotoVideoId', 'is', null)` from the LEFT JOIN condition.

Tested on:
- Web

Ran PR checklist

* chore: run make sql.

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-02-17 15:49:30 +00:00
renovate[bot]
c524fcf084
chore(deps): update node.js to v22.14.0 (#16132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-15 21:29:33 -06:00
Jonathan Jogenfors
5407a28533
feat(server): Nullable asset dates (#15669)
* nullable dates

* wip

* don't search for null dates

* Add placeholder type

* cleanup
2025-02-13 15:30:12 -06:00
Jason Rasmussen
2d7c333c8c
refactor(server): narrow auth types (#16066) 2025-02-12 15:23:08 -05:00
Jason Rasmussen
fa5aeaf539
refactor: last repository (#16042) 2025-02-11 22:15:56 +00:00
Jason Rasmussen
5f3a42a132
refactor: repositories (#16038) 2025-02-11 15:12:31 -05:00
Jason Rasmussen
9d85272c2b
refactor: repositories (#16036) 2025-02-11 14:08:13 -05:00
renovate[bot]
d2575d8f00
fix(deps): update typescript-projects (#16023)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-02-11 18:50:18 +00:00
renovate[bot]
17a63e37b2
chore(deps): update base-image to v20250211 (major) (#16025)
chore(deps): update base-image to v20250211

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 11:21:25 -06:00
renovate[bot]
2271984dbd
chore(deps): update dependency @types/node to ^22.13.1 (#16013)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 00:19:02 +00:00
Jason Rasmussen
735f8d661e
refactor: test mocks (#16008) 2025-02-11 00:47:42 +01:00
github-actions
8794c84e9d chore: version v1.126.1 2025-02-10 17:54:02 +00:00
github-actions
feba590de7 chore: version v1.126.0 2025-02-10 16:10:06 +00:00
Jason Rasmussen
758bcd1e97
fix(server): validate oauth profile has a sub (#15967) 2025-02-08 17:01:28 -05:00
Jason Rasmussen
758449e9f0
refactor: session repository (#15957) 2025-02-07 23:16:40 +00:00
Jason Rasmussen
d7d4d22fe0
refactor: process repository (#15956) 2025-02-07 18:04:04 -05:00
Jason Rasmussen
03948a69e2
refactor: system metadata repository (#15954) 2025-02-07 17:26:49 -05:00
Jason Rasmussen
61b8eb85b5
feat: view album shared links (#15943) 2025-02-07 16:38:20 -05:00
Jason Rasmussen
c5360e78c5
feat(web): shared link filters (#15948) 2025-02-07 13:05:15 -05:00
Jason Rasmussen
23014c263b
feat(api): set person color (#15937) 2025-02-07 10:06:58 -05:00
renovate[bot]
ef6c2bf547
chore(deps): update base-image to v20250204 (major) (#15931)
chore(deps): update base-image to v20250204

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 15:59:29 -05:00
Daniel Dietzler
45f7401513
chore: nestjs 11 (#15542) 2025-02-06 13:56:26 -05:00
renovate[bot]
76a70703a5
chore(deps): update base-image to v20250128 (major) (#15796)
chore(deps): update base-image to v20250128

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-02-06 13:51:52 -05:00
Jason Rasmussen
48d421e28c
fix(server): always get UTC dates from postgres (#15920) 2025-02-05 18:47:27 +00:00
bo0tzz
1d6a4e9318
fix: call hexOrBufferToBase64 for stripMetadata thumbhash (#15917)
Fixes #15916 (I think)
2025-02-05 09:20:46 -06:00
Alex
fe42e7410b
chore(server): follow up on #15899 (#15907) 2025-02-04 16:57:11 -06:00
Jason Rasmussen
58bf58b393
refactor: get map markers database query (#15899) 2025-02-04 09:07:41 -06:00
Lukas
0bb1219b5f
fix(server): for individual shares not showing thumbnails (#15895)
* Fix for individual shares not showing thumbnails

* synced sql

* chore: add e2e test

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2025-02-04 09:07:50 +00:00
Jonathan Jogenfors
b730aa60ed
fix(server): queue missing metadata (#15864)
fix: queue missing metadata
2025-02-04 04:00:39 -05:00
Arno
7ec3610753
feat: Mark people as favorite (#14866)
* feat: added ability to mark people as favorite, which get sorted to the front of the people list

* feat(server): added unit test for favorite people

* feat(server): refactored for better readability

* fixed person service unit tests

* fixed open-api and sql checks

* fixed bad codegen and removed unnecessary type assertion again

* chore: clean up

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2025-02-04 08:52:17 +00:00
Alex
06f077bac2
fix(server): memory lane assets order (#15882)
* fix(server): memory lane assets order

* fix: sql

* pr feedback

* sql
2025-02-03 16:29:41 -06:00
Alex
4efacfbb91
feat: search by description (#15818)
* feat: search by description

* wip: mobile

* wip: mobile ui

* wip: mobile search logic

* feat: using f_unaccent

* icon to fit with text search
2025-02-02 15:18:13 -06:00
David Wolff
9ac95d6845
feat: add searching by tags (#15395)
* feat: add searching by tags

* fix: fix merge

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-01-31 21:37:22 +00:00
David Wolff
1b141d5ca9
refactor(server): filter assets by people using a subquery instead of a cte (#15768) 2025-01-31 09:06:45 -06:00
Jonathan Jogenfors
ca79e25a6e
feat(server): synology exclusion patterns (#15773)
feat: add synology exclusion patterns
2025-01-29 13:42:21 -06:00
github-actions
4fd8c1b3c1 chore: version v1.125.7 2025-01-29 17:41:38 +00:00
Ben Cochran
b4a4abbf51
fix(docs): move a few API doc comments to descriptions (#15381)
Previously, the comments were being used as the summaries, and thus were
displayed as the “title” of these endpoints
2025-01-29 11:58:10 -05:00
Jason Rasmussen
a0aea021a1
fix(server): restore user (#15763) 2025-01-29 16:49:08 +00:00
ayykamp
cc0cbd705e
feat: add support for JPEG 2000 (#15710)
* chore(server): add support for .jp2

* docs: add support for .jp2

* chore: fix tests

* fix formatting

* unify sorting
2025-01-28 23:27:28 +00:00
Carsten Otto
da580d4685
fix: show local dates for range in album summary (#15654)
* fix(web): show local dates for range in album summary

* fix(server): show local dates for range in album summary
2025-01-28 14:33:38 -06:00
Christian Kündig
fe1e09e51f
fix(server): Allow negative rating (for rejected images) (#15699)
Allow negative rating (for rejected images)
2025-01-27 21:54:29 -06:00
github-actions
f44669447f chore: version v1.125.6 2025-01-28 02:58:27 +00:00
Mert
92412ca2f7
fix(server): person thumbnail generation always being queued (#15734)
* fix person thumbnail generation always being queued

* fix thumbhash comparison

* fix mock
2025-01-27 16:20:18 -06:00
github-actions
64d926581f chore: version v1.125.5 2025-01-27 20:04:50 +00:00
Alex
0fe62298e1
fix(server): duplicate detection (#15727) 2025-01-27 13:53:59 -06:00
github-actions
e5794e6cfc chore: version v1.125.4 2025-01-27 18:44:12 +00:00
Alex
f6cbc9db06
fix(server): cannot render album page when all assets of an album are in trash (#15690)
* fix(server): cannot render album page when all assets of an album are in trash

* inner join

* add e2e test

* check empty albums too

* render add to album button on empty album

* lint

* count 0 if undefined

* fix album card test

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-01-26 21:18:34 -06:00
github-actions
72a55c13b6 chore: version v1.125.3 2025-01-26 14:14:48 +00:00
sudbrack
206412267a
fix(server): /search/random API returns same assets every call (#15682)
* Fix for server searchRandom function not returning random results

* Fix lint
2025-01-26 14:06:18 +00:00
Mert
05a446c259
fix(server): avoid duplicate rows in album queries (#15670)
* avoid duplicate rows

* left join, handle null vs. undefined

* update sql
2025-01-25 22:37:19 -06:00
Carsten Otto
4f725b95e1
fix(server): do not count deleted assets for album summary (#15668)
fixes #15645
fixes #15646
2025-01-25 16:45:13 -06:00
Carsten Otto
64b92cb24c
fix(server): do not reset fileCreatedDate (#15650)
When marking an offline asset as online again, do not reset the
fileCreatedAt value. This value contains the "true" date, copied
from exif.dateTimeOriginal. If we overwrite this value, we'd need
to run the metadata extraction job again. Instead, we just leave
the old (and correct) value in place.

fixes #15640
2025-01-25 13:50:37 -06:00
Alex
d12b1c907d
fix(server): bulk update location (#15642) 2025-01-25 11:58:07 -06:00
Robert Schütz
947c053c15
chore(server): add DB_URL supports Unix sockets unit test (#15629)
* test(server): DB_URL supports Unix sockets

* chore: format

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-01-25 10:38:00 +00:00
jdicioccio
39697cd973
fix: increase upload timeout (#15588)
Fix upload timeout issue

Fix an issue where when uploading a large file, the upload would consistently abort after 30 minutes. I changed this timeout from 30 minutes to 1 day. Maybe that's excessive, or maybe the timeout isn't even needed, but the current 30 minute timeout definitely seems way too short.
2025-01-25 04:26:52 -06:00
Jonathan Jogenfors
10e518db42
chore(server): print stack in case of worker error (#15632)
feat: show error stack
2025-01-24 22:45:55 -05:00
Mert
72fa31f9e9
fix(server): changing vector dim size (#15630) 2025-01-24 20:01:24 -05:00
github-actions
9871a04d54 chore: version v1.125.2 2025-01-24 19:09:06 +00:00
Mert
ba01b40e7c
fix(server): sslmode not working (#15587)
* parse db url before passing it to the driver

* don't be lazy

* simplify

* simplify

* add tests

* update sql sync script

* update mock

* remove unused import

* remove unused imports
2025-01-24 13:01:55 -06:00
Alex
d4a9eed4a1
fix(server): migration mentions public schema (#15622) 2025-01-24 18:11:22 +00:00
Alex
9d8072b994
fix(server): failed to get albums with archived assets (#15611)
* fix(mobile): failed to get albums with archived assets

* sql
2025-01-24 17:54:53 +00:00
Mert
a6ace5151c
fix(server): no exif metadata in the deduplication utility (#15585)
add exif to `getDuplicates`
2025-01-24 11:42:39 -06:00
Alex
ec7ab209f3
fix(server): link live photos (#15612)
* fix(server): link live photos

* chore: sql

* formatting
2025-01-24 11:38:59 -06:00
Mert
ba105d9f19
fix(server): searchRandom response (#15580)
* fix searchRandom

* add e2e

* set outer limit
2025-01-24 00:41:54 -05:00
Lukas
065d885ca0
fix(server): Fix for sorting faces during merging (#15571)
* Fix for sorting faces

* Put uneccessary orderBy in if statement
2025-01-23 21:33:24 -05:00
Mert
a07ae9b5b2
fix(server): set updatedAt on updates (#15573)
* `updatedAt` triggers

* drop function at the end
2025-01-23 19:24:29 -05:00
Jason Rasmussen
1869b1b41a
refactor: repositories (#15561)
* refactor: version history repository

* refactor: oauth repository

* refactor: trash repository

* refactor: telemetry repository

* refactor: metadata repository

* refactor: cron repository

* refactor: map repository

* refactor: server-info repository

* refactor: album user repository

* refactor: notification repository
2025-01-23 18:10:17 -05:00
Mert
071b271484
fix(server): getTimeBuckets not handling boolean filters correctly (#15567)
fix boolean handling
2025-01-23 15:08:20 -06:00
github-actions
50a2f6193f chore: version v1.125.1 2025-01-23 16:52:23 +00:00
github-actions
49a16045bd chore: version v1.125.0 2025-01-23 16:23:47 +00:00
Alex
afc6e91c66
fix(web): No EXIF info on stack navigation (#15533)
* fix(web): No EXIF info on stack navigation

* fix(web): No EXIF info on stack navigation

* add exif info to get stack query

* e2e test
2025-01-23 15:22:27 +00:00
renovate[bot]
1311189fab
chore(deps): update base-image to v20250123 (major) (#15555)
chore(deps): update base-image to v20250123

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 08:32:32 -05:00
renovate[bot]
fa3b5a4c8f
chore(deps): update node (#15554)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 08:32:14 -05:00
Jason Rasmussen
d3446f3092
refactor: logging repository (#15540) 2025-01-23 08:31:30 -05:00
renovate[bot]
b31414af8f
fix(deps): update dependency @nestjs/bullmq to v11 (#15534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 22:37:02 +00:00
renovate[bot]
cf99dcb279
fix(deps): update dependency @nestjs/event-emitter to v3 (#15535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 22:34:50 +00:00
renovate[bot]
dc56ed5d45
fix(deps): update dependency @nestjs/schedule to v5 (#15537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 22:32:35 +00:00
renovate[bot]
d1d26c60d6
fix(deps): update typescript-projects (#14892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-01-22 22:15:38 +00:00
Jason Rasmussen
66849d0d45
refactor: migrate media repository (#15536) 2025-01-22 22:11:07 +00:00
renovate[bot]
30b8864d2d
chore(deps): update base-image to v20250121 (major) (#15497)
chore(deps): update base-image to v20250121

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 16:45:25 -05:00
Jason Rasmussen
1f19a65d1a
refactor: migrate memory repository (#15532) 2025-01-22 21:39:13 +00:00
Jason Rasmussen
ca3619658b
fix: incorrect event configuration (#15530) 2025-01-22 20:43:06 +00:00
Daniel Dietzler
7b71c145c8
chore: upgrade to vite 6 (#15508)
chore: upgrade to vite 5
2025-01-22 15:18:04 -05:00
Mert
49a6961ec6
fix(server): query fixes (#15509) 2025-01-22 14:17:42 -06:00
Jason Rasmussen
8d6cbb51e2
fix: get asset by id for stacks (#15522) 2025-01-22 18:13:09 +00:00
renovate[bot]
c8abe9a2fd
chore(deps): update node.js to v22.13.1 (#15503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 16:16:46 -06:00
Jason Rasmussen
36058b9b59
chore: remove unused code (#15499) 2025-01-21 16:47:48 -05:00
Jason Rasmussen
ccf6d71c3c
refactor: view repository (#15496) 2025-01-21 18:26:13 +00:00
Jason Rasmussen
9a27a99cab
refactor: config repository (#15495)
* refactor: access repository

* refactor: config repository
2025-01-21 13:13:09 -05:00
Daniel Dietzler
332a865ce6
refactor: migrate person repository to kysely (#15242)
* refactor: migrate person repository to kysely

* `asVector` begone

* linting

* fix metadata faces

* update test

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-01-21 13:12:28 -05:00
Alex
c35fd6cbdb
refactor: migrate album repo to kysely (#15474) 2025-01-21 11:24:48 -06:00
renovate[bot]
58d5cc1e4b
chore(deps): update dependency @types/node to ^22.10.7 (#15479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 11:54:47 -05:00
Jason Rasmussen
9a1068c867
refactor: api key repository (#15491) 2025-01-21 10:45:59 -06:00
Jason Rasmussen
1745f48f3d
feat: better spec urls (#15487) 2025-01-21 10:26:52 -06:00
Jason Rasmussen
b0cdd8f475
refactor: access repository (#15490) 2025-01-21 10:09:24 -06:00
Alex
318dd32363
refactor: migrate stack repo to kysely (#15440)
* wip

* wip: add tags

* wip

* sql

* pr feedback

* pr feedback

* ergonomic

* pr feedback

* pr feedback
2025-01-21 09:36:28 -06:00
David Wolff
70809c1465
fix(server): searching for multiple people yields false positives (#15447) 2025-01-19 13:01:21 -05:00
Robert Schütz
97ec3b147c
fix(deps): use node-addon-api v8 (#15438) 2025-01-19 11:26:25 -05:00
renovate[bot]
8eac82c5a3
chore(deps): update dependency eslint-config-prettier to v10 (#15428)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 14:04:46 -06:00
Daniel Dietzler
3d13da7f11
refactor: migrate shared-link repository to kysely (#15289)
* refactor: migrate shared-link repository to kysely

* fix duplicate individual shared link return in getAll when there are more than 1 asset in the shared link

* using correct order condition

* using eb.table

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-01-18 13:25:15 -06:00
Jason Rasmussen
097183b31d
refactor: migrate partner repo to kysely (#15366) 2025-01-17 18:49:21 -05:00
Alex
6993726d50
chore: generate sql for stack repo (#15413)
* chore: generate sql for stack repo

* update sql
2025-01-17 20:02:28 +00:00
Zack Pollard
c821458e6c
refactor: migrate map repository to kysely (#15348)
* chore: migrate map repository to kysely

* chore: add kysely codegen command, exclude from prettier and re-run it on latest migrations

* refactor: migrate map repository to kysely

* chore: dont log postgres notices
2025-01-17 09:14:42 -06:00
Alex
378bd3c993
refactor: migrate access repo to kysely (#15365) 2025-01-16 09:25:03 -06:00
Jason Rasmussen
6ce1533117
fix: activity types (#15368) 2025-01-15 23:31:26 -05:00
Daniel Dietzler
a2207f2eef
refactor: migrate library repository to kysely (#15271) 2025-01-15 15:01:28 -06:00
Alex
7d087371b5
chore: sql sync (#15370)
* chore: sql sync

* chore: sql sync
2025-01-15 19:55:29 +00:00
Jason Rasmussen
93e2545275
refactor: migrate memory to kysely (#15314) 2025-01-15 11:34:11 -05:00
renovate[bot]
43b3181f45
chore(deps): update base-image to v20250114 (major) (#15347)
chore(deps): update base-image to v20250114

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 19:58:02 -05:00
Mert
2903ad8156
refactor(server): migrate album-user repo to kysely (#15351) 2025-01-14 19:27:16 -05:00
renovate[bot]
3e11b90851
chore(deps): update node.js to v22.13.0 (#15337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 13:20:12 -05:00
Alex
a35af2b242
refactor: migrate move repository to kysely (#15327)
* refactor: migrate move repository to kysely

* fix: tests

* fix: tests
2025-01-13 23:22:03 -05:00
Yonathan Randolph
fc99c5f530
chore(server): avoid copying sources in dev (#12794)
* chore(server): avoid copying sources in dev

Add a dev target to the web and server Dockerfiles, and change docker-compose.dev.yml to use the dev target. The dev target avoids copying files so that the docker image is smaller.

* chore: respond to PR: don't add dev target

web/Dockerfile is only used by docker-compose.dev.yml so a dev target is redundant. Instead, just remove the copy

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-01-13 22:00:55 -05:00
Daniel Dietzler
28b08ed417
refactor: migrate audit repository to kysely (#15269) 2025-01-13 21:23:12 -05:00
Alex
79726acc72
refactor: migrate sessions repository to kysely (#15268)
* wip: search

* wip: getByToken

* wip: getByToken

* wip: getByUserId

* wip: create/update/delete

* remove unused code

* clean up and pr feedback

* fix: test

* fix: e2e test

* pr feedback
2025-01-13 20:45:52 -05:00
Jason Rasmussen
36eef9807b
fix: version history sql (#15321) 2025-01-14 01:38:11 +00:00
Alex
3da750117f
refactor: migrate user repository to kysely (#15296)
* refactor: migrate user repository to kysely

* refactor: migrate user repository to kysely

* refactor: migrate user repository to kysely

* refactor: migrate user repository to kysely

* fix: test

* clean up

* fix: metadata retrieval bug

* use correct typeing for upsert metadata

* pr feedback

* pr feedback

* fix: add deletedAt check

* fix: get non deleted user by default

* remove console.log

* fix: stop kysely after command finishes

* final clean up

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-01-13 20:30:34 -05:00
Mert
fef36e6a37
chore(server)!: default max bitrate unit to kbps (#15264)
default unit to kbps
2025-01-11 22:09:19 -06:00
renovate[bot]
8b4390c247
chore(deps): update dependency @types/node to ^22.10.5 (#15246)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-11 22:06:18 -06:00
renovate[bot]
2301affd7e
chore(deps): update node.js to v22.13.0 (#15249)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-11 22:04:22 -06:00
renovate[bot]
0b8cfc6b82
chore(deps): update base-image to v20250107 (major) (#15251)
chore(deps): update base-image to v20250107

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-11 23:00:50 -05:00
bo0tzz
cab201270c
chore: migrate version-history repository to kysely (#15267)
* chore: generate sql for version-history repository

* chore: run kysely-codegen

* chore: migrate version-history repository to kysely

* fix: change `| null` to `| undefined`

* chore: clean up unneeded async
2025-01-11 20:12:34 +00:00
Jason Rasmussen
e51091b6e5
refactor: migrate trash to kysely (#15233) 2025-01-10 18:48:21 -05:00
Jason Rasmussen
cc6a8b0c74
refactor: migrate system metadata to kysely (#15231) 2025-01-10 14:20:15 -05:00
Jason Rasmussen
930f979960
feat: migration api keys to use kysely (#15206) 2025-01-10 14:02:12 -05:00
Daniel Dietzler
7d50d3032b
refactor: activity queries (#15207) 2025-01-09 18:14:36 -05:00
Daniel Dietzler
1fb2b3f899
refactor: migrate activity repo to kysely (#15203)
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-01-09 14:31:46 -05:00
Mert
2e12c46980
refactor(server): use kysely (#12857) 2025-01-09 11:15:41 -05:00
github-actions
8d836ae04f chore: version v1.124.2 2025-01-08 23:16:35 +00:00
Jonathan Jogenfors
bab04378dc
fix(server): generate thumbnails for external assets (#15183)
fix: thumbnail generation of external assets
2025-01-08 17:12:39 -06:00
github-actions
cc10fc15c3 chore: version v1.124.1 2025-01-08 16:16:15 +00:00
Alex
36a9ae7c54
fix(server): email cannot render with pretty flag (#15157) 2025-01-08 08:53:08 -06:00
github-actions
840d99ed25 chore: version v1.124.0 2025-01-07 19:00:42 +00:00
Jonathan Jogenfors
23f3e737fd
fix(server): don't delete offline files from disk when trash empties (#14777)
fix: don't delete offline files from disk when emptying trash

Move logic to asset deletion check
2025-01-07 18:25:43 +00:00
Zack Pollard
776be7d205
fix: reverse geocoding data import don't use unlogged tables (#15136) 2025-01-07 15:36:07 +00:00
scottdesilva
1f0ffd634a
fix(server): unit test for creating tag with color (#15120)
* Pass color to tag repo on creation

* unit test for creating tag with optional color
2025-01-06 13:33:48 -06:00
scottdesilva
c78e9d6ad5
fix(server): save color when creating tag (#15106)
Pass color to tag repo on creation
2025-01-06 12:21:55 -05:00
Mert
fcd372238f
chore(server): add support for .m2t (#15064)
* add m2t

* ordering
2025-01-03 16:28:32 -06:00
Chuckame
3c35b467f4
feat(server): use the earliest date between file creation and modification timestamps when missing exif tags (#14874)
* feat(server): Use the earliest date between file creation and modification timestamps when missing exif tags

* PR fixes

* PR fixes

* Switch log to debug

* fix linter for min date

* apply prettier
2025-01-02 04:50:15 +00:00
renovate[bot]
b91f39d1af
chore(deps): update base-image to v20241224 (major) (#14905)
chore(deps): update base-image to v20241224

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-27 09:51:42 -06:00
Daniel Dietzler
139090715e
fix: trusted proxies (#14888) 2024-12-27 09:51:07 -06:00
renovate[bot]
6b08e82cf7
fix(deps): update dependency @nestjs/swagger to v8 (#13881)
* fix(deps): update dependency @nestjs/swagger to v8

* chore: generate open api

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-12-23 21:03:34 +00:00
Jonathan Jogenfors
c3be74c450
fix(server): support import paths with special chars (#14856) 2024-12-22 16:22:16 -06:00
Jonathan Jogenfors
4bc2aa5451
feat(server): Handle sidecars in external libraries (#14800)
* handle sidecars in external libraries

* don't add separate source
2024-12-21 20:50:07 -06:00
renovate[bot]
8e724c3c27
chore(deps): update base-image to v20241217 (major) (#14776)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 18:27:08 +00:00
Daniel Dietzler
6a855f6331
chore: update deps (#14755) 2024-12-18 14:19:48 +00:00
renovate[bot]
0d060ebb32
chore(deps): update node (#14736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 15:21:01 -05:00
github-actions
fd34a914a6 chore: version v1.123.0 2024-12-17 16:00:50 +00:00
000yesnt
f180ae70f9
feat(server): add Bash healthcheck script (#14704)
* feat(server): add Bash healthcheck script

* fix(server): add 2 second timeout for healthcheck.js parity

* chore(server): delete old healthcheck Node script

* fix(server): feedback

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-12-16 15:19:18 +00:00
Lukas
12e55f5bf0
feat(server): Merge Faces sorted by Similarity (#14635)
* Merge Faces sorted by Similarity

* Adds face sorting to the side panel face merger

* run make open-api

* Make it one query

* Only have the single order by when sorting by closest face
2024-12-16 08:47:11 -06:00
Tim Van Onckelen
525840b040
fix(server): fixed email footer image stretched #14617 (#14671) 2024-12-13 17:13:38 +00:00
renovate[bot]
39732f3371
chore(deps): update base-image to v20241210 (major) (#14670)
chore(deps): update base-image to v20241210

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 16:28:27 +00:00
renovate[bot]
59d6af54c7
chore(deps): update node.js to v22.12.0 (#14650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 10:12:44 -06:00
github-actions
c52f1bae81 chore: version v1.122.3 2024-12-11 21:15:03 +00:00
Alex
0c03753642
fix(server): fix getByDayOfYear query (#14655)
* fix(server): fix getByDayOfYear query

* generate sql
2024-12-11 20:51:56 +00:00
Mert
9eff1c4b34
refactor(server): move filters to getByDayOfYear query (#14628)
move filters to getByDayOfYear query
2024-12-10 16:22:47 -05:00
Mert
25ca3b1124
refactor(server): use includeNull in query for search suggestions (#14626)
* use `includeNull`

* push down `includeNull` into query, inner joins

* remove filter

* update sql

* fix tests

* maybe fix e2e

* more e2e tests

* handle no exif row

* whoops

* update sql
2024-12-10 16:22:37 -05:00
Mert
60c783bbe9
fix(server): partial fallback for hardware transcoding (#14611) 2024-12-10 12:11:19 -05:00
Lukas
1ba622adc9
feat: Add support for vob (#14590)
Add support for vob
2024-12-08 20:35:23 -06:00
github-actions
03eb5903fe chore: version v1.122.2 2024-12-08 23:41:22 +00:00
github-actions
97c1eb7289 chore: version v1.122.1 2024-12-06 13:49:14 +00:00
Mert
07096bdcee
fix(server): images with non-ascii names failing to load (#14512)
* utf-8 filename

* Update file.ts

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

---------

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
2024-12-06 07:43:58 -06:00
github-actions
37220a342a chore: version v1.122.0 2024-12-05 16:29:46 +00:00
Tim Van Onckelen
292182fa7f
feat: Notification Email Templates (#13940) 2024-12-04 20:26:02 +00:00
Mert
4bf1b84cc2
feat(ml): support multiple urls (#14347)
* support multiple url

* update api

* styling

unnecessary `?.`

* update docs, make new url field go first

add load balancing section

* update tests

doc formatting

wording

wording

linting

* small styling

* `url` -> `urls`

* fix tests

* update docs

* make docusaurus happy

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-12-04 20:17:47 +00:00
Mert
ba9b9353bc
fix(server): show people without thumbnails (#14460)
* show people without thumbnails

* redundant clause

* updated sql
2024-12-03 15:04:42 -05:00
Mert
52247c3650
fix(server): always set transcoding device, prefer renderD* (#14455)
always set device, prefer renderD*
2024-12-02 20:28:50 -05:00
Eli Gao
4eb7758f56
feat(server): specify names for thumbnail files (#14425) 2024-12-01 13:21:08 -06:00
Sam Holton
5417e34fb6
feat(server): Add publicUsers toggle for user search (#14330)
* feat(server): Add publicUsers toggle for user search

* tests

* docs: add check:typescript for web PR checklist

* return auth.user when publicUsers is false - app testing

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-11-26 15:51:01 +00:00
San
1c82804f63
fix(server): use hw decoding for rkmpp w/o OpenCL if possible (#13848)
* Set hardware decoding options for rkmpp when hardware decoding is enabled with no OpenCL on non-HDR file

* Use hw decoding, sw tone-mapping on HDR files using RKMPP w/o OpenCL

* fallback to software decoding if is hdr video

* if hw decoding failed with hw dec config enabled, try sw dec+hw enc first, then full sw dec+enc

* fix unit test

* fix format, adjust log message

* formatting

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2024-11-22 08:08:49 +00:00
renovate[bot]
45ba0cc3ac
fix(deps): update typescript-projects (#13939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-11-21 14:07:06 +00:00
Alex
9a9d40c193
feat(server): clean up interrupted upload files (#14265)
* feat(server): clean up interrupted upload files

* pr feedback

* remove console.log

* handle all errors

* remove return in callback function

* programming in bed is a bad idea
2024-11-20 17:17:12 -06:00
Jason Rasmussen
9e1e9b1fbf
refactor: rename searchMetadata to searchAssets (#14151) 2024-11-20 14:47:25 -05:00
Jason Rasmussen
876893c823
refactor(server): filter on-event handlers by worker (#14085) 2024-11-20 14:08:42 -05:00
renovate[bot]
c6e1dbec5c
chore(deps): update base-image to v20241119 (major) (#14253)
chore(deps): update base-image to v20241119

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-20 14:05:39 -05:00
renovate[bot]
f40269bc3e
chore(deps): update node.js to b64ced2 (#14218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-20 14:05:06 -05:00
Lukas
b6937c5e03
fix(server): Remove log that accidently was commited in #14134 (#14261)
Remove log that accidently was commited
2024-11-20 17:20:54 +00:00
github-actions
98c9ae1f7d chore: version v1.121.0 2024-11-20 16:15:53 +00:00
Mert
ad510dd6fd
feat(server): faster geodata import (#14241)
* faster geodata import

* revert logging change

* unlogged tables

* leave spare connection

* use expression index instead of generated column

* do btree indexing with others
2024-11-20 08:57:14 -06:00
Daniel Dietzler
a3712e40bd
fix: parse quota claim as number (#14178) 2024-11-19 15:40:56 -06:00
Mert
34fae31fd4
fix(server): remove unnecessary guc settings for vector search (#14237)
remove unnecessary guc settings
2024-11-19 15:37:39 -06:00
Alex
f8bbc6eabe
fix: mobile album sync always triggered when opening the app (#14233)
* fix: mobile album sync always triggered when opening the app

* send lastModifiedAssetTimestamp when get individual album
2024-11-19 21:36:55 +00:00
Michel Heusschen
32f908baf1
fix: show tags when viewing stacked assets (#14199)
fix: refresh tags when viewing stacked assets
2024-11-18 07:50:04 -05:00
weathondev
f5c4af73aa
feat: adding photo & video storage space to server stats (#14125)
* expose detailed user storage stats + display them in the storage per user table

* chore: openapi & sql

* fix: fix test stubs

* fix: formatting errors, e2e test and server test

* fix: upper lower case typo in spec file

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-11-15 16:38:57 -06:00
Lukas
9203a61709
fix(server): Some MTS videos fail to generate thumbnail (#14134)
* Stop skipping of all frames in MTS video

* Only skip flag for mts videos

* Fix lint checks

* Adds test

* Add comment for why flag is removed
2024-11-14 07:07:04 +00:00
Pablo Molina
333ca8827e
feat: use dateTimeOriginal to calculate album date (#14119) 2024-11-13 11:17:14 -06:00
github-actions
31a1e64b58 chore: version v1.120.2 2024-11-12 17:30:29 +00:00
Zack Pollard
e17bd8efc6
fix(server): backup version checks not handling database versions correctly (#14102) 2024-11-12 10:57:05 -06:00
Alex
2f9019c0e1
fix(server): correct rotation for common files (#14092)
* fix(server): correct rotation for common files

* fix: test:

* pr feedback
2024-11-12 15:07:56 +00:00
Zack Pollard
dfa8a8a6e1
feat(server): use pg_dumpall version that matches the database version (#14083) 2024-11-12 14:58:29 +00:00
renovate[bot]
b9a0c3c79f
chore(deps): update base-image to v20241112 (major) (#14088)
chore(deps): update base-image to v20241112

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 12:49:31 +00:00
renovate[bot]
bda97c4e0e
chore(deps): update node (#14090)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 07:32:52 -05:00
Zack Pollard
d4ca7d0075
fix: config updates not applying for job and storage template service (#14074) 2024-11-11 12:50:09 +00:00
Zack Pollard
5097c92494
fix(server): attempt to delete failed backups immediately after failure (#13995) 2024-11-11 12:08:52 +00:00
Terry Zhao
c8b46802d6
fix(server): thumbnail rotation when using embedded previews (#13948) 2024-11-08 06:30:59 +00:00
Jason Rasmussen
7534098596
fix(server): support non-default postgres port when taking a backup (#13992) 2024-11-07 20:06:16 +00:00
Jason Rasmussen
e84ad084d5
refactor(server): cron validation (#13990) 2024-11-07 17:27:52 +00:00
Jason Rasmussen
dc2de47204
refactor(server): cron repository (#13988) 2024-11-07 12:15:54 -05:00
Jason Rasmussen
64831e2328
refactor: remove smart info table (#13985) 2024-11-07 11:25:10 -05:00
github-actions
599b489f81 chore: version v1.120.1 2024-11-07 15:31:19 +00:00
Sefa Eyeoglu
564449a555
fix(server): database backups compatible with deduplication (#13965)
gzip --rsyncable has a slightly worse compression ratio, but allows for
efficient deduplication and, as the name implies, faster rsync
operations.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-11-07 12:36:17 +00:00
Robert Schütz
f4741c70f3
fix(server): allow starting backup through API and fix pg_dumpall args when using database URLs (#13970)
* fix(server): allow starting backup through API

* fix(server): fix pg_dumpall args when using database URLs

The database has to be specified using `-d`, unlike for pg_dump.
2024-11-07 11:57:36 +00:00
Alex
ebf06dc12e
fix(server): cannot render email template (#13957) 2024-11-06 22:14:11 +01:00
github-actions
f1b8a9374f chore: version v1.120.0 2024-11-06 16:17:29 +00:00
renovate[bot]
7134d26a19
chore(deps): update base-image to v20241105 (major) (#13826) 2024-11-05 21:24:36 +00:00
renovate[bot]
42ee7f1290
chore(deps): update typescript-projects (#13922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-11-05 20:04:39 +00:00
renovate[bot]
5d7a04367c
chore(deps): update dependency @types/node to ^22.8.6 (#13937)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 14:28:13 -05:00
Zack Pollard
d456d35510
refactor: config init event for first config load (#13930) 2024-11-05 16:30:56 +00:00
Zack Pollard
c383e115af
chore: better observability for geodata import (#13931) 2024-11-05 16:20:56 +00:00
Jason Rasmussen
5edbb93a4d
refactor(server): get worker (#13927) 2024-11-05 13:07:51 +00:00
renovate[bot]
1d55b5bfc0
chore(deps): update dependency @types/node to ^22.8.5 (#13923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 06:48:01 -05:00
renovate[bot]
60afd7b400
chore(deps): update node (#13918)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-04 19:52:23 -05:00
Pranay Pandey
380fc06979
fix: remove duplicateIds on unique assets (#13752) 2024-11-04 10:03:03 -05:00
renovate[bot]
d34d92dca3
fix(deps): update dependency exiftool-vendored to v28.7.0 (#13790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-04 12:49:21 +00:00
Daniel Dietzler
3551407d95
fix: healthcheck if custom host is set (#13887) 2024-11-02 22:46:16 -04:00
Jason Rasmussen
fed882a28a
refactor(server): immich worker (#13871)
refactor(server): immich work
2024-11-01 17:19:36 -04:00
Carsten Otto
cdabd08139
fix(server): wrong image dimensions for RAW files (RAF, CR2) (also fixes face preview) (#13377) 2024-11-01 10:34:34 -04:00
Mert
b9096f3e99
feat(server): use tonemapx for software tone-mapping (#13785) 2024-10-31 20:48:23 -04:00
Jason Rasmussen
5b2cd704d3
refactor(server): job discovery (#13838)
refactor(server): job discorvery
2024-10-31 13:42:58 -04:00
renovate[bot]
a28b92b3cc
chore(deps): update dependency node to v22 (#13855)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 14:21:45 +00:00
renovate[bot]
066682f48d
chore(deps): update dependency @types/node to ^22.8.1 (#13854)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 14:20:26 +00:00
Zack Pollard
7d933ec97a
feat: built-in automatic database backups (#13773) 2024-10-31 11:29:42 +00:00
renovate[bot]
9d75c5b999
chore(deps): update typescript-projects (#13789)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 15:03:32 -04:00
Jason Rasmussen
40fbef50cf
refactor(server): remove unused on method (#13830) 2024-10-30 14:09:52 -04:00
renovate[bot]
92ad03615c
chore(deps): update node to v22 (major) (#13792)
* chore(deps): update node to v22

* fix: deprecated constructor

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-10-30 16:05:02 +00:00
renovate[bot]
0d62ff11f1
chore(deps): update base-image to v20241029 (major) (#13821)
chore(deps): update base-image to v20241029

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 06:02:45 -04:00
Jason Rasmussen
0f668fd5c6
refactor(server): env validation (#13817) 2024-10-30 05:00:41 -04:00
Jason Rasmussen
19eb3ed8b9
refactor(server): cls (#13814) 2024-10-29 20:41:47 +00:00
Jason Rasmussen
2efba6326d
chore(server): telemetry env clean up (#13813) 2024-10-29 19:20:32 +00:00
Jason Rasmussen
37e437a568
fix(server): keep system config transformations (#13796) 2024-10-29 15:59:35 +00:00
Jason Rasmussen
4b9e460db5
refactor(server): worker cleanup (#13805) 2024-10-29 11:47:33 -04:00
Zack Pollard
68a4cc25dc
refactor: better postgres connection param typing (#13800) 2024-10-29 15:11:34 +00:00
Zack Pollard
e74ddca6c0
fix: shutdown api process when another worker exits unexpectedly (#13802) 2024-10-29 14:46:04 +00:00
Zack Pollard
02819dc079
feat: mount checks on a folder level (#13801) 2024-10-29 14:43:27 +00:00
Jason Rasmussen
e029190a5d
fix(server): handle N/A duration response from ffprobe (#13803) 2024-10-29 14:21:30 +00:00
github-actions
00dd9419a5 chore: version v1.119.1 2024-10-29 13:33:36 +00:00
renovate[bot]
490fcc5591
chore(deps): update dependency @types/node to ^20.17.0 (#13787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-28 21:55:44 -04:00
github-actions
8449e78c8f chore: version v1.119.0 2024-10-28 14:41:08 +00:00
Darrel
a70ed7c7f6
fix: X years ago ordering (#13742)
* fix: order by fileCreatedAt to account for tz

* run make sql
2024-10-26 15:28:33 -04:00
renovate[bot]
88d85eff0a
chore(deps): update base-image to v20241025 (major) (#13736)
chore(deps): update base-image to v20241025

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-26 09:09:01 -04:00
Zack Pollard
d95b474e58
fix: duplicated library scan jobs and api server library watch (#13734) 2024-10-25 14:48:42 +01:00
Jason Rasmussen
43d18ccc36
refactor(server): user create logic (#13728) 2024-10-24 17:24:37 -04:00