Jason Rasmussen
03948a69e2
refactor: system metadata repository ( #15954 )
2025-02-07 17:26:49 -05:00
Jason Rasmussen
d3446f3092
refactor: logging repository ( #15540 )
2025-01-23 08:31:30 -05:00
Jason Rasmussen
36058b9b59
chore: remove unused code ( #15499 )
2025-01-21 16:47:48 -05:00
Jason Rasmussen
9a27a99cab
refactor: config repository ( #15495 )
...
* refactor: access repository
* refactor: config repository
2025-01-21 13:13:09 -05: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
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
Jason Rasmussen
e84ad084d5
refactor(server): cron validation ( #13990 )
2024-11-07 17:27:52 +00:00
Mert
b9096f3e99
feat(server): use tonemapx for software tone-mapping ( #13785 )
2024-10-31 20:48:23 -04:00
Zack Pollard
7d933ec97a
feat: built-in automatic database backups ( #13773 )
2024-10-31 11:29:42 +00:00
Jason Rasmussen
37e437a568
fix(server): keep system config transformations ( #13796 )
2024-10-29 15:59:35 +00:00
pyorot
b1149881bd
feat(server): add pcm_s16le accepted audio codec ( #13418 )
2024-10-18 08:26:16 -04:00
Jason Rasmussen
3d971f69dc
refactor(server): storage template options ( #13553 )
2024-10-17 13:11:51 -04:00
Jason Rasmussen
4ea281f854
refactor: service dependencies ( #13108 )
...
refactor(server): simplify service dependency management
2024-10-02 10:54:35 -04:00
Jason Rasmussen
63437529e1
refactor(server): config file env ( #13100 )
2024-10-01 16:03:55 -04:00
Jason Rasmussen
a019fb670e
refactor(server): config service ( #13066 )
...
* refactor(server): config service
* fix: function renaming
---------
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-09-30 17:31:21 -04:00
Jason Rasmussen
a2d457b01d
refactor(server): events ( #13003 )
...
* refactor(server): events
* chore: better type
---------
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-09-30 10:35:11 -04:00
Mert
995f0fda47
feat(server): separate quality for thumbnail and preview images ( #13006 )
...
* allow different thumbnail and preview quality, better config structure
* update web and api
* wording
* remove empty line?
2024-09-28 06:01:04 +00:00
Jason Rasmussen
12da250028
refactor: enums ( #12988 )
2024-09-27 10:28:42 -04:00
Zack Pollard
bcd416477b
feat: serve map tile styles from tiles.immich.cloud ( #12858 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-09-23 20:30:23 +00:00
Daniel Dietzler
a7719a94fc
fix: normalize external domain ( #12831 )
...
chore: normalize external domain
2024-09-23 15:40:25 +00:00
Mark
649897f737
docs: Add conditional album storage template information ( #12218 )
2024-09-05 23:57:12 +02:00
BugFest
77e6a6d78b
feat(server): Import face regions from metadata ( #6455 )
...
* feat: faces-from-metadata - Import face regions from metadata
Implements immich-app#1692.
- OpenAPI spec changes to accomodate metadata face import configs. New settings to enable the feature.
- Updates admin UI compoments
- ML faces detection/recognition & Exif/Metadata faces compatibility
Signed-off-by: BugFest <bugfest.dev@pm.me>
* chore(web): remove unused file confirm-enable-import-faces
* chore(web): format metadata-settings
* fix(server): faces-from-metadata tests and format
* fix(server): code refinements, nullable face asset sourceType
* fix(server): Add RegionInfo to ImmichTags interface
* fix(server): deleteAllFaces sourceType param can be undefined
* fix(server): exiftool-vendored 27.0.0 moves readArgs into ExifToolOptions
* fix(server): rename isImportFacesFromMetadataEnabled to isFaceImportEnabled
* fix(server): simplify sourceType conditional
* fix(server): small fixes
* fix(server): handling sourceType
* fix(server): sourceType enum
* fix(server): refactor metadata applyTaggedFaces
* fix(server): create/update signature changes
* fix(server): reduce computational cost of Person.getManyByName
* fix(server): use faceList instead of faceSet
* fix(server): Skip regions without Name defined
* fix(mobile): Update open-api (face assets feature changes)
* fix(server): Face-Person reconciliation with map/index
* fix(server): tags.RegionInfo.AppliedToDimensions must be defined to process face-region
* fix(server): fix shared-link.service.ts format
* fix(mobile): Update open-api after branch update
* simplify
* fix(server): minor fixes
* fix(server): person create/update methods type enforcement
* fix(server): style fixes
* fix(server): remove unused metadata code
* fix(server): metadata faces unit tests
* fix(server): top level config metadata category
* fix(server): rename upsertFaces to replaceFaces
* fix(server): remove sourceType when unnecessary
* fix(server): sourceType as ENUM
* fix(server): format fixes
* fix(server): fix tests after sourceType ENUM change
* fix(server): remove unnecessary JobItem cast
* fix(server): fix asset enum imports
* fix(open-api): add metadata config
* fix(mobile): update open-api after metadata open-api spec changes
* fix(web): update web/api metadata config
* fix(server): remove duplicated sourceType def
* fix(server): update generated sql queries
* fix(e2e): tests for metadata face import feature
* fix(web): Fix check:typescript
* fix(e2e): update subproject ref
* fix(server): revert format changes to pass format checks after ci
* fix(mobile): update open-api
* fix(server,movile,open-api,mobile): sourceType as DB data type
* fix(e2e): upload face asset after enabling metadata face import
* fix(web): simplify metadata admin settings and i18n keys
* Update person.repository.ts
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* fix(server): asset_faces.sourceType column not nullable
* fix(server): simplified syntax
* fix(e2e): use SDK for everything except the endpoint being tested
* fix(e2e): fix test format
* chore: clean up
* chore: clean up
* chore: update e2e/test-assets
---------
Signed-off-by: BugFest <bugfest.dev@pm.me>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-09-04 18:23:58 -04:00
Jason Rasmussen
b288241a5c
refactor(server): enums ( #11809 )
2024-08-15 06:57:01 -04:00
Mert
9d2d556200
feat(server): accepted video containers ( #11274 )
...
* add accepted container config
* update api
* mp4 option makes no sense
* add to transcoding settings
* wording
* updated spec config
* formatting
2024-07-21 21:14:23 +00:00
Jason Rasmussen
25a380d023
feat(server): userinfo signing ( #10756 )
...
* feat(server): userinfo signing
* chore: e2e tests
2024-07-11 07:55:00 -04:00
bo0tzz
e54c18367b
chore: Lower default duplicate detection distance ( #10703 )
2024-06-30 11:36:02 -04:00
Jason Rasmussen
72bf9439b0
refactor(server): event emits ( #10648 )
...
* refactor(server): event emits
* refactor: change default priority to 0
2024-06-27 15:54:20 -04:00
Zack Pollard
abf6fc25f7
chore: change default thumbnail concurrency and auto-detect container core count ( #9981 )
...
* feat: automatically detect amount of CPU cores and allow overriding with CPU_CORES env var
* chore: change default thumbnail concurrency to 3
2024-06-05 11:45:53 +01:00
Alex
6879bcb7a4
chore(server): duplication default settings ( #9781 )
2024-05-26 20:51:41 -04:00
Jason Rasmussen
95012dc19b
fix: config error logging ( #9738 )
2024-05-24 16:44:50 -04:00
Mert
d8eca168ca
feat(server): fully accelerated nvenc ( #9452 )
...
* use arrayContaining
* libplacebo for nvenc
update dockerfile
* tweaks
* update nvenc options
* tweak settings
* refactor
* toggle for hardware decoding, software / hardware decoding for nvenc and rkmpp
* fix software tone-mapping not being applied
* separate configs for hw/sw
* update api
* add hw decode toggle
* fix mutating config
* remove `version` flag
* fix config type
* remove submodule
* handle temporal AQ
* remove duplicate tests
* use `tonemap_opencl`
* wording
* update docs
2024-05-16 13:30:26 -04:00
Mert
64636c0618
feat(server): near-duplicate detection ( #8228 )
...
* duplicate detection job, entity, config
* queueing
* job panel, update api
* use embedding in db instead of fetching
* disable concurrency
* only queue visible assets
* handle multiple duplicateIds
* update concurrent queue check
* add provider
* add web placeholder, server endpoint, migration, various fixes
* update sql
* select embedding by default
* rename variable
* simplify
* remove separate entity, handle re-running with different threshold, set default back to 0.02
* fix tests
* add tests
* add index to entity
* formatting
* update asset mock
* fix `upsertJobStatus` signature
* update sql
* formatting
* default to 0.03
* optimize clustering
* use asset's `duplicateId` if present
* update sql
* update tests
* expose admin setting
* refactor
* formatting
* skip if ml is disabled
* debug trash e2e
* remove from web
* remove from sidebar
* test if ml is disabled
* update sql
* separate duplicate detection from clip in config, disable by default for now
* fix doc
* lower minimum `maxDistance`
* update api
* Add and Use Duplicate Detection Feature Flag (#9364 )
* Add Duplicate Detection Flag
* Use Duplicate Detection Flag
* Attempt Fixes for Failing Checks
* lower minimum `maxDistance`
* fix tests
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
* chore: fixes and additions after rebase
* chore: update api (remove new Role enum)
* fix: left join smart search so getAll works without machine learning
* test: trash e2e go back to checking length of assets is zero
* chore: regen api after rebase
* test: fix tests after rebase
* redundant join
---------
Co-authored-by: Nicholas Flamy <30300649+NicholasFlamy@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Zack Pollard <zack@futo.org>
2024-05-16 18:08:37 +01:00
Jason Rasmussen
984aa8fb41
refactor(server): system config ( #9517 )
2024-05-15 18:58:23 -04:00
Jason Rasmussen
7b1112f3e3
refactor(server): system config ( #9484 )
2024-05-14 14:43:49 -04:00
Nicolò
9bce3417e9
feat(server): email notifications ( #8447 )
...
* feat(server): add `react-mail` as mail template engine and `nodemailer`
* feat(server): add `smtp` related configs to `SystemConfig`
* feat(web): add page for SMTP settings
* feat(server): add `react-email.adapter`
This adapter render the React-Email into HTML and plain/text email.
The output is set as the body of the email.
* feat(server): add `MailRepository` and `MailService`
Allow to use the NestJS-modules-mailer module to send SMTP emails.
This is the base transport for the `NotificationRepository`
* feat(server): register the job dispatcher and Job for async email
This allows to queue email sending jobs for the `EmailService`.
* feat(server): add `NotificationRepository` and `NotificationService`
This act as a middleware to properly route the notification to the right transport.
As POC I've only implemented a simple SMTP transport.
* feat(server): add `welcome` email template
* feat(server): add the first notification on `createUser` in `UserService`
This trigger an event for the `NotificationRepository` that once processes
by using the global config and per-user config will carry the payload to the right notification transport.
* chore: clean up
* chore: clean up web
* fix: type errors"
* fix package lock
* fix mail sending, option to ignore certs
* chore: open api
* chore: clean up
* remove unused import
* feat: email feature flag
* chore: remove unused interface
* small styling
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-02 15:43:18 +01:00
Mert
431ffebddd
feat(server): use embedded preview from raw images ( #8773 )
...
* extract embedded
* update api
* add tests
* move temp file logic outside of media repo
* formatting
* revert `toSorted`
* disable by default
* clarify setting description
* wording
* wording
* update docs
* check extracted image dimensions
* test that it unlinks
* formatting
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-19 10:50:13 -05:00
AmAn Sharma
6e6deec40c
feat: use ILoggerRepository ( #8855 )
...
* Migrate ImmichLogger over to injected ILoggerRepository
* chore: cleanup and tests
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-16 17:30:31 -04:00
Jason Rasmussen
50c9bc0336
chore: migrate to vitest ( #7156 )
...
* chore: jest => vitest
* chore: replace jest-when
2024-04-16 10:44:45 -04:00
Jason Rasmussen
2db76034b1
feat(server): correlation id via injected logger ( #8823 )
...
* feat(server): correlation id via injected logger
* feat: cid response header
2024-04-15 23:39:06 +00:00
Jason Rasmussen
369bd17c8b
chore(server): remove unused method ( #8639 )
2024-04-08 17:23:45 -04:00
Mert
8edc2fb46f
refactor(server): decouple generated images from image formats ( #8246 )
...
* rename
thumbnail config
update target paths, fix tests
rename to image settings
replace legacy enum
better typing
update sql
update api
remove config option
fix
* update docs
* update other thumbnail configs in migration
* keep legacy enum for now
* fix jumbled job names
* fix jumbled job names in tests
* rename thumbhash job
* rename dto
* fix tests
* preserve order
* remove unused import
* keep old fields in dto, marked deprecated
* update sql
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-02 04:56:56 +00:00
Jason Rasmussen
6e93ddf2f1
refactor: server events ( #8204 )
...
* refactor: server events
* fix typo
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2024-03-22 18:24:02 -04:00
Daniel Dietzler
b588a87d4a
chore(server): rename domain repositories -> interfaces ( #8147 )
...
rename domain repositories
2024-03-21 06:59:49 -05:00
Jason Rasmussen
16d0df796c
refactor: infra folder ( #8138 )
2024-03-20 23:15:09 -04:00
Daniel Dietzler
ef4a492cb1
chore(server): move services ( #8133 )
...
move services
2024-03-20 18:07:30 -05:00