Commit graph

1640 commits

Author SHA1 Message Date
Zack Pollard
0a9cbf01d2
feat: ack sync reset (#20703) 2025-08-05 20:30:19 +00:00
Zack Pollard
02381343ff
fix: album asset sync must sync new assets in a shared album (#20655) 2025-08-05 17:53:51 +01:00
renovate[bot]
eb2f4c866e
chore(deps): update dependency eslint-plugin-unicorn to v60 (#20677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-08-05 10:58:13 +00:00
Michael
a91bb399f0
feat: add server.versionCheck permission (#20555)
* add server.versionCheck permission

* getVersionCheck is no admin-route
2025-08-04 17:39:05 -05:00
cford256
10141504a2
fix: exif rating rounding (#20457)
* fix_Exlif_Metadata_Rating_Rounding_to_Interger

Rounding Exlif Rating Interger
Images support having numbers other than integers for the rating metadata in EXLIF. The database expects it to be an integer though. Trying to upload an image that has a rating other than an integer results in it failing to parse the image and defaulting to showing a corrupted file icon. 

Rather than changing the database type, I would like to round the rating to the nearest integer so that Immich works with images that have a rating like this in their metadata.

* Changing Metadata validateRange to always round.

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

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

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-08-04 14:29:51 -05:00
Daniel Dietzler
4d5cd1a6b5
fix: migration if media location is set (#20532) 2025-08-01 14:49:51 +00:00
Daniel Dietzler
3cdc6844a1
fix: automatic media location migration without internal assets (#20489) 2025-07-31 22:58:35 +00:00
shenlong
641a3baadd
fix(mobile): add partial index based on library ID to remote assets (#20214)
* feat: add libraryId to SyncAssetV1

* add partial index

# Conflicts:
#	mobile/drift_schemas/main/drift_schema_v5.json
#	mobile/lib/infrastructure/repositories/db.repository.dart
#	mobile/lib/infrastructure/repositories/db.repository.steps.dart
#	mobile/test/drift/main/generated/schema_v5.dart

* chore: make build

* rebase

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-30 23:59:00 +05:30
Jason Rasmussen
749f999f2a
feat: better endpoint descriptions (#20439) 2025-07-30 13:29:36 -03:00
Brandon Wees
097e132fba
fix: user profile images not working in beta timeline (#20203)
* fix user icons in album view

* revert updateUsersV1 change

* fix: UserDto merge issues

* fix: update user entity

* revert what I thought were merge issues

turns out drift cant figure out when it needs to gen a file...

* fix removed line

* handle defaults for older servers

* feat: checkpoint migrations

* fix: use parenthesis instead of brackets

* Update 1753800911775-ProfileImageCheckpointRemoval.ts

* fix: sync stream updateUsersV1
2025-07-30 11:09:28 -05:00
Jason Rasmussen
9b65cd4d7b
feat!: remove typeorm (#20366)
feat: remove typeorm
2025-07-29 17:28:02 -04:00
Jason Rasmussen
58521c9efb
feat: change default media location to /data (#20367)
* feat!: change default media location to /data

* feat: dynamically detect media location
2025-07-29 16:58:50 -04:00
Zack Pollard
a0fa7318ed
fix: handle cleanup of new backups alongside old backups (#20402) 2025-07-29 13:28:10 +01:00
Alwin Lohrie
ae1d60e259
feat: find large files utility (#18040)
feat: large asset utility

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-07-28 18:48:39 -04:00
Jason Rasmussen
7d759edfcc
chore: add permission metadata to open-api document (#20373) 2025-07-28 18:40:34 -04:00
Jed-Giblin
9b3718120b
feat: shared links custom URL (#19999)
* feat: custom url for shared links

* feat: use a separate route and query param

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-07-28 14:16:55 -04:00
Jason Rasmussen
16b14b390f
fix: file samples (#20364) 2025-07-28 13:30:49 -04:00
Sergey Katsubo
d34670bae6
feat(server): include reason in null reverse geocoding logs (#20347)
* Clarify in log why reverse geocoding may return nothing

* Decrease log level for empty reverse geocoding response from warn to log

* Use a named constant for 25km

* Mention fallback to countries in the message

* Improve natural earth log message

* Decrease log level for empty reverse geocoding response from natural earth countries
2025-07-28 08:51:00 -05:00
Jason Rasmussen
c6b25ef111
feat: automatically detect media location changes (#20256) 2025-07-25 15:25:36 -04:00
Jason Rasmussen
0fdeac0417
feat!: more permissions (#20250)
feat: more api key permissions
2025-07-25 15:25:23 -04:00
Zack Pollard
7f2e4f85f8
fix: lookup the primary key constraint name before dropping it (#20221) 2025-07-25 16:51:22 +01:00
Daimolean
25e2d37490
fix(server): use UserMetadataKey enum instead of string (#20209)
* fix(server): use UserMetadataKey enum instead of string

* fix: mobile
2025-07-25 11:04:28 -04:00
Zack Pollard
977c9b96ba
fix: geodata_places pkey migration failing for certain upgrade paths (#20177) 2025-07-24 22:50:36 +01:00
Jason Rasmussen
fc68cf4f32
chore: remove migration (#20129) 2025-07-24 14:11:53 +00:00
Jason Rasmussen
bc8cb9b671
fix: default route permission (#20113) 2025-07-23 16:56:38 -04:00
Jason Rasmussen
a675922172
fix: unset prewarn param (#20109) 2025-07-23 16:52:59 -04:00
Jason Rasmussen
92384c28de
feat: sync auth user (#20067) 2025-07-23 09:59:33 -04:00
xCJPECKOVERx
1a70896113
feat(web): Remove from Stack (#19703)
* - add component
- update server's StackCreateDto for merge parameter
- Update stackRepo to only merge stacks when merge=true (default)
- update web action handlers to show stack changes

* - make open-api

* lint & format

* - Add proper icon to 'remove from stack'
- change web unstack icon to image-off-outline

* - cleanup

* - format & lint

* - make open-api: StackCreateDto merge optional

* initial addition of new endpoint

* remove stack endpoint

* - fix up remove stack endpoint
- open-api

* - Undo stackCreate merge parameter

* - open-api typescript

* open-api dart

* Tests:
- add tests
- update assetStub.imageFrom2015 to have required stack attributes to include it with tests

* update event name

* Fix event name in test

* remove asset_update check

* - merge stack.removeAsset params into one object
- refactor asset existence check (no need for asset fetch)
- fix tests

* Don't return updated stack

* Create specialized stack id & primary asset fetch for asset removal checks

* Correct new permission names

* make sql

* - fix open-api

* - cleanup
2025-07-22 22:17:06 -04:00
Daimolean
496b0c7076
fix(server): missing integer type (#20075) 2025-07-22 09:29:14 +00:00
Zack Pollard
df318ac641
feat: asset face sync (#20048)
* chore: remove thumbnailPath from person sync dto

* feat: asset face sync
2025-07-21 21:31:45 -04:00
megumin
dcfe8d5ade
fix: send filename when viewing the original file (#20005)
* feat: add fileName to downloadOriginal response

* test: add fileName to ImmichFileResponse for downloadOriginal

* lint: use single quotes for fileName string in test
2025-07-18 11:55:24 -05:00
Min Idzelis
576f681b5c
feat: remove dep on cwd for workers (#20012) 2025-07-18 10:57:49 -04:00
Jason Rasmussen
493d85b021
feat!: absolute file paths (#19995)
feat: absolute file paths
2025-07-18 10:57:29 -04:00
Jason Rasmussen
bcb968e3d1
refactor: job names (#19949) 2025-07-15 18:39:00 -04:00
Jason Rasmussen
e73abe0762
refactor: enum casing (#19946) 2025-07-15 14:50:13 -04:00
Jason Rasmussen
920d7de349
refactor: event names (#19945) 2025-07-15 13:41:19 -04:00
Jason Rasmussen
351701c4d6
refactor: validate enum (#19943) 2025-07-15 17:14:57 +00:00
Min Idzelis
68f249bc03
feat: improve geodata import speed (#19906)
chore(deps): update dependency vite to v7 (#19657)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-15 16:23:41 +00:00
Jason Rasmussen
805ec3e351
chore: asset sync FKs (#19927) 2025-07-14 10:57:25 -05:00
Jason Rasmussen
c699df002a
feat: rename schema (#19891) 2025-07-14 10:13:06 -04:00
Jason Rasmussen
47c0dc0d7e
feat: nightly tasks (#19879) 2025-07-11 17:32:10 -04:00
Daniel Dietzler
df581cc0d5
feat: UserMetadata sync (#19882)
* feat: UserMetadata sync

* refactor: sync table filters (#19887)
2025-07-11 18:19:53 +00:00
Jason Rasmussen
9e48ae3052
feat: naming strategy (#19848)
* feat: naming strategy

* feat: detect renames
2025-07-11 11:35:10 -04:00
Jason Rasmussen
617a2f146d
fix: startup log level (#19885) 2025-07-11 11:22:38 -04:00
Jason Rasmussen
1cc5ca14ca
feat: allow unordered migrations in dev (#19881) 2025-07-11 10:58:34 -04:00
Jason Rasmussen
4b3a4725c6
feat: pending sync reset flag (#19861) 2025-07-11 09:38:02 -04:00
shenlong
34f0f6c813
chore: rename new migration to execute last (#19872)
chore: rename new migration to change execution order

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-11 08:41:06 -04:00
SGT
55fe67dd20
fix(server): clear activity when asset is removed from album (#19019) 2025-07-10 19:37:56 +02:00
Jason Rasmussen
ed4c7817e7
feat: AssetUploadReadyV1 event (#19858) 2025-07-10 13:30:10 -04:00
Zack Pollard
39c95f1280
refactor: rename geodata pk constraint to match runtime constraint name (#19856) 2025-07-10 17:18:51 +00:00
Zack Pollard
b19884d01e
feat(server): people sync (#19854)
* chore: fix missing usage of deleteType for syncMemoriesV1

* chore: add src path for proper absolute imports in jetbrains

* feat: people sync
2025-07-10 11:32:42 -04:00
Léopold Koprivnik
f778adea92
feat: adds option to search only for untagged assets (#19730)
Co-authored-by: SkwalExe <skwal@skwal.net>
2025-07-10 16:28:20 +02:00
Jason Rasmussen
51ab7498e9
feat: create table with constraints (#19828) 2025-07-09 09:13:14 -04:00
Jason Rasmussen
df4a27e8a7
feat: sql-tools overrides (#19796) 2025-07-08 08:17:40 -04:00
Daniel Dietzler
4ce9bce414
feat: oauth role claim (#19758) 2025-07-06 18:45:32 -04:00
Jason Rasmussen
6044663e26
refactor: sql-tools (#19717) 2025-07-03 10:59:17 -04:00
aviv926
484529e61e
feat(server): add immich and postgres version to the database backup name (#19603) 2025-07-03 10:35:24 +01:00
Min Idzelis
ca78bc91b6
feat: fully qualified path in error msg (#19674)
* feat: fully qualified path in error msg

* import style
2025-07-02 09:31:20 -04:00
Jason Rasmussen
c435bdb5d3
refactor: sql-tools readers (#19672) 2025-07-01 22:57:17 -04:00
Min Idzelis
15da0d5a71
fix: email button (#19675) 2025-07-01 22:48:41 -04:00
Daimolean
83afd49f5c
feat(mobile): edit location action (#19645)
* change dto from integer to double

* feat(mobile): edit location action

* patch openapi

* refactor in provider

* fix lint

* chore: not showing success prompt if dimissed

* i18n

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-01 16:52:11 +00:00
Daniel Dietzler
53f80393bf
chore: upgrade to cron v4 (#19664) 2025-07-01 12:47:04 +02:00
Mert
a068a41c06
fix(server): prevent duplicate geodata temp table (#18580)
drop tmp table, create gist index first
2025-06-30 23:28:30 -04:00
bo0tzz
3c6e9e1191
feat: use request host as default SSR domain (#19485)
fix: hostname and domain confusion

chore: e2e test
2025-06-30 23:24:44 -04:00
Min Idzelis
db0415bbcc
chore: undeclared versions/updates (#19649) 2025-06-30 23:23:41 -04:00
Jason Rasmussen
93f9e118ad
refactor: timeline tests (#19641) 2025-06-30 17:43:45 -04:00
Jason Rasmussen
58ca1402ed
feat: sync partner stacks (#19635) 2025-06-30 16:41:06 -04:00
Jason Rasmussen
181a7e115f
feat: sync stacks (#19629) 2025-06-30 14:26:41 -05:00
Jason Rasmussen
e60bc3c304
refactor: database types (#19624) 2025-06-30 13:19:16 -04:00
Jason Rasmussen
09cbc5d3f4
refactor: change password repository lookup (#19584) 2025-06-27 16:52:04 -04:00
Jason Rasmussen
a2a9797fab
refactor: auth medium tests (#19583) 2025-06-27 15:35:19 -04:00
Jason Rasmussen
df76735f4a
refactor: sync repository (#19581) 2025-06-27 13:47:06 -04:00
Jason Rasmussen
6feca56da8
feat: sync memories (#19579) 2025-06-27 12:20:13 -04:00
Jason Rasmussen
6c6a32c63e
refactor: memory medium tests (#19568) 2025-06-26 19:52:10 -04:00
Jason Rasmussen
6fed223405
fix: array-max-length (#19562) 2025-06-26 19:41:48 +00:00
Jason Rasmussen
3105094a3d
refactor: medium tests (#19537) 2025-06-26 15:32:06 -04:00
Jason Rasmussen
b96c95beda
refactor(server): sync service (#19559) 2025-06-26 17:24:57 +00:00
Daimolean
926ff075a3
fix(web): absolute path match in external library (#19551) 2025-06-26 10:46:34 -05:00
Min Idzelis
934649c8df
feat(server): check additional exif date tags (#19216)
* feat(server): check additional exif date tags

- Add support for UTC date tags (GPSDateTime, DateTimeUTC, GPSDateStamp, SonyDateTime2)
- This matches tags that exiftool-vendored uses for tzSource in extractTzOffsetFromUTCOffset()

* Review comments

* nit

* review comments

* lots of tests for exif datetime

* missed

* format

* format again

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-26 10:18:40 -05:00
shenlong
ea3a14ed25
feat(mobile): add album asset sync (#19522)
* feat(mobile): add album asset sync

* add SyncAlbumToAssetDeleteV1 to openapi-spec

* update delete queries to use where in statements

* clear remote album when clear remote data

* fix: bad merge

* fix: bad merge

* fix: _SyncAckV1 return type

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: wuzihao051119 <wuzihao051119@outlook.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-06-26 08:50:39 -05:00
shenlong
fda22c83b9
fix: sync stream album assets type order (#19540)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-25 20:42:56 -05:00
Jason Rasmussen
881a96cdf9
feat: add album asset sync (#19503)
wip: fix album asset exif and some other refactorings

feat: add album assets sync

feat: album to assets relation sync

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-06-25 16:10:31 +00:00
Jason Rasmussen
eca9b56847
feat(server): person delete (#19511)
feat(api): person delete
2025-06-25 11:12:36 -04:00
Jason Rasmussen
88b8afb8d6
fix: return 404 for invalid shared link pages (#19493) 2025-06-24 10:37:14 -05:00
Jason Rasmussen
c759233d8c
fix(server): include hidden assets in missing metadata extraction query (#19471) 2025-06-24 08:42:38 -04:00
Mert
03966146fe
fix(server): filter parameters by database and role (#19392) 2025-06-23 12:10:00 +01:00
Daimolean
798debfde3
fix(server): duplicate column storage (#19385) 2025-06-20 15:52:25 -04:00
dotlambda
6fda863c08
fix(server): don't hardcode database name in migration (#19376) 2025-06-20 21:33:34 +03:00
Zack Pollard
0b44d4b6f2
fix: partner and album backfill acks (#19371)
fix: partner sync being entirely broken
2025-06-20 16:14:36 +00:00
Jason Rasmussen
33c9f88ba4
fix: time bucket grouping (#19329) 2025-06-20 09:46:30 -04:00
Mert
11c469907f
fix(server): migration failing on pg15+ (#19363)
* reset params

* unused parameter
2025-06-20 08:36:07 -05:00
Zack Pollard
00aa385972
fix: people ordering by asset count (#19366) 2025-06-20 07:34:04 -05:00
Zack Pollard
fe91b44ab9
fix: people ordering incorrect (#19298) 2025-06-19 16:05:03 +00:00
Jason Rasmussen
910661e75c
chore: remove unused mocks (#19299) 2025-06-19 10:35:09 -05:00
Mert
f99c6feac5
fix(server): unset prewarm dim parameter (#19271)
unset prewarm dim
2025-06-19 09:04:52 -05:00
Mert
49ed212af8
fix(server): drop vector indices before updating extension (#19283)
drop indices before updating
2025-06-19 09:03:40 -05:00
SGT
0a9a520ed2
feat(server): sql-tools support for class level composite fk (#19242)
* feat: support for class level composite fk

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-06-18 14:30:39 -04:00
Jason Rasmussen
e0144b4ece
feat: backfill album users (#19234) 2025-06-18 10:48:11 -04:00
Jason Rasmussen
35280b94cc
refactor: sync service (#19225) 2025-06-17 16:06:40 +00:00
Zack Pollard
749f63e4a0
fix: partner asset and exif sync backfill (#19224)
* fix: partner asset sync backfill

* fix: add partner asset exif backfill

* ci: output content of files that have changed
2025-06-17 09:56:54 -04:00