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
0589575154
chore: bump open-api ( #9522 )
2024-05-15 16:52:52 -05: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
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
Sam Holton
9125999d1a
feat(server,web): make user deletion delay configurable ( #7663 )
...
* feat(server,web): make user deletion delay configurable
* alphabetical order
* add min for user.deleteDelay in SettingInputField
* make config.user.deleteDelay SettingInputField min consistent format
* fix e2e test
* update description on user delete delay
2024-03-05 23:45:40 -06:00
Jason Rasmussen
2e39243670
deps: open-api generator ( #6655 )
...
* deps: open-api generator
* fix: unused sed/replace
2024-01-26 11:40:28 -05:00
Jason Rasmussen
317adc5c28
feat(web,server): external domain setting ( #6146 )
...
* feat: external domain setting
* chore: open api
* mobile: handle serverconfig-externalDomain
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-03 21:54:48 -05:00
Jason Rasmussen
9768931275
feat(web,server)!: runtime log level ( #5672 )
...
* feat: change log level at runtime
* chore: open api
* chore: prefer env over runtime
* chore: remove default env value
2023-12-14 16:55:40 +00:00
Daniel Dietzler
cd375a976e
feat(server): custom library scanning interval ( #4390 )
...
* add automatic library scan config options
* add validation
* open api
* use CronJob instead of cron-validator
* fix tests
* catch potential error of the library scan initialization
* better description for input field
* move library scan job initialization to server app service
* fix tests
* add comments to all parameters of cronjob contructor
* make scan a child of a more general library object
* open api
* chore: cleanup
* move cronjob handling to job repoistory
* web: select for common cron expressions
* fix open api
* fix tests
* put scanning settings in nested accordion
* fix system config validation
* refactor, tests
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-10-31 15:19:12 -05:00
martin
1aae29a0b8
refactor(server, web)!: store latest immich version available on the server ( #3565 )
...
* refactor: store latest immich version available on the server
* don't store admins acknowledgement
* merge main
* fix: api
* feat: custom interval
* pr feedback
* remove unused code
* update environment-variables
* pr feedback
* ci: fix server tests
* fix: dart number
* pr feedback
* remove proxy
* pr feedback
* feat: make stringToVersion more flexible
* feat(web): disable check
* feat: working version
* remove env
* fix: check if interval exists when updating the interval
* feat: show last check
* fix: tests
* fix: remove availableVersion when updated
* fix merge
* fix: web
* fix e2e tests
* merge main
* merge main
* pr feedback
* pr feedback
* fix: tests
* pr feedback
* pr feedback
* pr feedback
* pr feedback
* pr feedback
* fix: migration
* regenerate api
* fix: typo
* fix: compare versions
* pr feedback
* fix
* pr feedback
* fix: checkIntervalTime on startup
* refactor: websockets and interval logic
* chore: open api
* chore: remove unused code
* fix: use interval instead of cron
* mobile: handle WS event data as json object
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: shalong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2023-10-24 11:05:42 -04:00
Wingy
62a11283af
feat(web): custom stylesheets ( #4602 )
...
* add initial ui and api definitions for stylesheets
* proper saving
* make custom css work
* add textarea
* rebuild api
* run prettier
* add typecast
* update typings
* move css accordion to be sorted alphabetically
* set content-type properly
* rename stylesheets to theme
* fix server test
2023-10-23 18:38:41 +00:00
shenlong
4a8887f37b
feat(server): trash asset ( #4015 )
...
* refactor(server): delete assets endpoint
* fix: formatting
* chore: cleanup
* chore: open api
* chore(mobile): replace DeleteAssetDTO with BulkIdsDTOs
* feat: trash an asset
* chore(server): formatting
* chore: open api
* chore: wording
* chore: open-api
* feat(server): add withDeleted to getAssets queries
* WIP: mobile-recycle-bin
* feat(server): recycle-bin to system config
* feat(web): use recycle-bin system config
* chore(server): domain assetcore removed
* chore(server): rename recycle-bin to trash
* chore(web): rename recycle-bin to trash
* chore(server): always send soft deleted assets for getAllByUserId
* chore(web): formatting
* feat(server): permanent delete assets older than trashed period
* feat(web): trash empty placeholder image
* feat(server): empty trash
* feat(web): empty trash
* WIP: mobile-recycle-bin
* refactor(server): empty / restore trash to separate endpoint
* test(server): handle failures
* test(server): fix e2e server-info test
* test(server): deletion test refactor
* feat(mobile): use map settings from server-config to enable / disable map
* feat(mobile): trash asset
* fix(server): operations on assets in trash
* feat(web): show trash statistics
* fix(web): handle trash enabled
* fix(mobile): restore updates from trash
* fix(server): ignore trashed assets for person
* fix(server): add / remove search index when trashed / restored
* chore(web): format
* fix(server): asset service test
* fix(server): include trashed assts for duplicates from uploads
* feat(mobile): no dialog for trash, always dialog for permanent delete
* refactor(mobile): use isar where instead of dart filter
* refactor(mobile): asset provide - handle deletes in single db txn
* chore(mobile): review changes
* feat(web): confirmation before empty trash
* server: review changes
* fix(server): handle library changes
* fix: filter external assets from getting trashed / deleted
* fix(server): empty-bin
* feat: broadcast config update events through ws
* change order of trash button on mobile
* styling
* fix(mobile): do not show trashed toast for local only assets
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-10-06 02:01:14 -05:00
Daniel Dietzler
9bada51d56
feat(server, web)!: Move reverse geocoding settings to the UI ( #4222 )
...
* feat: reverse geocoding settings
* chore: open api
* re-init geocoder if precision has been updated
* update docs
* chore: update verbiage
* fix: re-init logic
* fix: reset to default
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-09-26 14:03:57 +07:00
Jason Rasmussen
f1db257628
feat(server,web): server config ( #4006 )
...
* feat: server config
* chore: open api
* fix: redirect /map to /photos when disabled
2023-09-08 22:51:46 -04:00
Jason Rasmussen
8211afb726
feat(web,server)!: configure machine learning via the UI ( #3768 )
2023-08-25 06:15:03 +02:00
Alex
ddd4ec2d9e
feat(web/server): webp thumbnail size configurable ( #3598 )
...
* feat(server/web): webp thumbnail size configurable
* update api
* add ui and fix test
* lint
* setting for jpeg size
* feat: coerce to number
* api
* jpeg resolution
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-08-08 09:39:51 -05:00
Alex
13df619ba9
fix(server): pin openapi genreator patch and regenerate api ( #3573 )
...
* fix(server): pin openapi genreator patch and regenerate api
* variable
2023-08-06 15:55:14 -05:00
Alex The Bot
3edb347666
Version v1.72.0
2023-08-06 19:48:25 +00:00
Jason Rasmussen
310fab526d
chore(server): auto sort open api spec ( #3500 )
...
* chore: recursively sort api keys
* chore: open api
2023-08-01 16:49:18 +00:00
Alex
751922990f
chore/remove openapi assertion for dart 2 ( #2916 )
...
* chore(server): patch dart openapi assertion 2
* removed usused file
2023-06-22 13:00:07 -05:00
Alex
4311d385fc
chore(server): patch dart openapi assertion ( #2914 )
...
* chore(server): patch dart openapi assertion
* remove unused file
2023-06-22 12:48:57 -05:00
Jason Rasmussen
2493dfaba3
feat(server): dynamic job concurrency ( #2622 )
...
* feat(server): dynamic job concurrency
* styling and add setting info to top of the job list
* regenerate api
* remove DETECT_OBJECT job
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-06-01 05:32:51 -05:00
Jason Rasmussen
91ad584064
chore: regenerate open api ( #2374 )
2023-05-03 14:27:57 -05:00
Jason Rasmussen
079ee658a5
fix(mobile): omit null values from json requests ( #1212 )
...
* chore: initial template
* feat: exlude null values
* chore: regenerate openapi
* chore: merge
* feat: store changes in a patch file
* feat: extract to sh script
* chore: regenerate openapi
* chore: remove duplicate file
* feat: generate mobile by itself
* Fixed number property not decorated correctly
* Revert hotfix, fix test
* Merge main
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-01-09 22:08:45 -06:00
Jason Rasmussen
bd838a71d1
feat(web,server): disable password login ( #1223 )
...
* feat(web,server): disable password login
* chore: unit tests
* chore: fix import
* chore: linting
* feat(cli): server command for enable/disable password login
* chore: update docs
* feat(web): confirm dialogue
* chore: linting
* chore: linting
* chore: linting
* chore: linting
* chore: linting
* chore: fix web test
* chore: server unit tests
2023-01-09 16:32:58 -05:00
Alex
c754c860fd
feat(server) user-defined storage structure ( #1098 )
...
[Breaking] newly uploaded file will conform to the default structure of `{uploadLocation}/{userId}/year/year-month-day/filename.ext`
2022-12-16 14:26:12 -06:00
Jason Rasmussen
5e680551b9
feat(server,web): migrate oauth settings from env to system config ( #1061 )
2022-12-09 14:51:42 -06:00