1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-23 02:06:15 +02:00
Commit Graph

308 Commits

Author SHA1 Message Date
Jason Rasmussen
89aff7764d
chore(server): remove deprecated device endpoints (#1436)
* chore: remove endpoints

* chore: generate open-api
2023-01-26 20:51:22 -06:00
Jason Rasmussen
c4e1bc35b4
feature(server): compute sha1 during upload (#1424)
* feature(server): compute sha1 during upload

* fix: clean up stream on error
2023-01-26 13:29:44 -06:00
Alex
8b73c2bf8a
fix(server): Handle exposure time correctly (#1432) 2023-01-26 13:14:05 -06:00
Jason Rasmussen
b1311547b2
refactor(cli): use service instead of typeorm repo (#1423) 2023-01-26 08:30:33 -06:00
Jason Rasmussen
8f304b8157
refactor(server): shared links (#1385)
* refactor(server): shared links

* chore: tests

* fix: bugs and tests

* fix: missed one expired at

* fix: standardize file upload checks

* test: lower flutter version

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-01-25 10:35:28 -06:00
Skyler Mäntysaari
9d337bf4dc
feat(server/machine-learning): Configurable port (#1386)
* feat(server/machine-learning): Configurable port

* feat(server/machine-learning): Address PR comments.

* feat(server/machine-learning): Simplify

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-01-23 22:18:35 -06:00
Jason Rasmussen
b7d34079d9
feat(server): search by is favorite (#1400)
* feat(server): search by is favorite

* chore: regenerate api

* fix: boolean transform

* chore: remove console log

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-01-23 22:16:20 -06:00
Jason Rasmussen
eade36ee82
refactor(server): auth service (#1383)
* refactor: auth

* chore: tests

* Remove await on non-async method

* refactor: constants

* chore: remove extra async

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-01-23 22:13:42 -06:00
Jason Rasmussen
443d08381a
build: version pump script (#1398)
* build: version pump script

* feat: server pump is optional

* chore: remove unused variable

* chore: examples

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-01-23 21:46:37 -06:00
Alex Tran
182ee3c0da
Fix immich-jwt test 2023-01-21 23:10:29 -06:00
Alex Tran
efe204fef8
Add comma to cookie 2023-01-21 22:59:08 -06:00
Alex
b07891089f
feat(web/server) Add more options to public shared link (#1348)
* Added migration files

* Added logic for shared album level

* Added permission for EXIF

* Update shared link response dto

* Added condition to show download button

* Create and edit link with new parameter:

* Remove deadcode

* PR feedback

* More refactor

* Move logic of allow original file to service

* Simplify

* Wording
2023-01-21 22:15:16 -06:00
Jason Rasmussen
4cfac47674
refactor(server): job repository (#1382)
* refactor(server): job repository

* refactor: job repository

* chore: generate open-api

* fix: job panel

* Remove incorrect subtitle

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-01-21 22:13:36 -06:00
Zack Pollard
4e0fe27de3
feat(server): transcoding improvements (#1370)
* feat: support isEdited flag for SettingSwitch

* feat: add transcodeAll ffmpeg settings for extra transcoding control

* refactor: tidy up and rename current video transcoding code + transcode everything

* feat: better video transcoding with ffprobe

analyses video files to see if they are already in the desired format
allows admin to choose to transcode all videos regardless of the current format

* fix: always serve encoded video if it exists

* feat: change video codec option to a select box, limit options

removed previous video codec config option as it's incompatible with new options
removed mapping for encoder to codec as we now store the codec in the config

* feat: add video conversion job for transcoding previously missed videos

* chore: fix spelling of job messages to pluralise assets

* chore: fix prettier/eslint warnings

* feat: force switch targetAudioCodec default to aac to avoid iOS incompatibility

* chore: lint issues after rebase
2023-01-21 20:09:02 -06:00
Skyler Mäntysaari
8eb82836b9
feat(server): Support webm videos (#1365)
* feat(server): Support webm without transcoding.

Transcoding result doesn't appear to be used by anything expect for quicktime.

* feat(server): Fix the asset uploader for .avi

It needs to be transcoded.

* feat(server): Most browsers doesn't support avi so use mp4.

* feat(server): Address PR comments

* Addressed the PR comments

I moved the function that checks the mimetype to a central location in asset-utils and made tests for it.

* Rollbacked to the way transcoder was decising things to transcode.
2023-01-21 15:52:40 -06:00
Skyler Mäntysaari
5262e92b9f
fix(server/cookies): Making the cookie better (#1366)
* fix(server/cookies): Making the cookie better

Cookie should have SameSite=Stict and Secure if served via https, otherwise just SameSite=Strict set.

* feat(server): forgot to add secure to the other cookie.

* Fixed the cookies and tests for them.
2023-01-21 10:16:53 -06:00
Jason Rasmussen
c0a6b3d5a3
refactor(server): system config (#1353)
* refactor(server): system config

* fix: jest circular import

* chore: ignore migrations in coverage report

* chore: tests

* chore: tests

* chore: todo note

* chore: remove vite config backup

* chore: fix redis hostname
2023-01-21 10:11:55 -06:00
Jason Rasmussen
bdad18a572
feat(server): turn off machine learning endpoint (#1361) 2023-01-20 10:35:55 -06:00
Jason Rasmussen
912d5a3069
fix(server): build (#1354) 2023-01-18 15:48:20 -05:00
Alex Tran
ecb4ee2e3e Pump version 2023-01-18 10:15:25 -06:00
Jason Rasmussen
92972ac776
refactor(server): api keys (#1339)
* refactor: api keys

* refactor: test module

* chore: tests

* chore: fix provider

* refactor: test mock repos
2023-01-18 08:40:15 -06:00
Alex
3e4a14b299
chore(server) harden EXIF extraction (#1347)
* chore(server) Harden EXIF extraction

* Remove unused function in timeutil

* Remove deadcode
2023-01-17 13:41:00 -06:00
Skyler Mäntysaari
dff10e89fe
feat(server): Fix exif data parsing (#1326)
* Trying to get exifdata working with different lib.

* Got the new library working.

* Addressing PR comments.

* Removed not used vars and proper place for the eslint disable.

* Fix time-utils to use the exiftool-vendored lib.

Fixed also one test, as that would be valid.

* Using filename for timestamp as well if possible.

* Add new tests for time-utils.

* Remember to gracefully terminate the exiftool instance when not needed.

* eslint ignore...

* Apperantly Dockerfile changes were not pushed.

* feat(dockerfile): Tweak the Server Dockerfile

* feat(server): getTimestampFromFilename should return string or undefined.

* feat(server): If we don't have exifData or timestamp from filename, raise an error.

* Apparently test was already right, but my local system disagrees.

* More utilities for parsing and fix the timestampFromFilename.

It was returning an incorrect date as the regex doesn't seem to be the best for this as files named `IMG_0115.HEIC` will want to get parsed incorrectly due to it.

* feat(server/docker): Install perl as it seems to be required.

* feat(server): remember to include exposureTime and focalLength in new exif data.

* feat(server): Remove the parsing from filename as requested.

* feat(server): Import exiftool differently in time-utils.

* feat(server): Error handling when there is no exifData.

* feat(server): Fixes for the error handling when there is no exifData.

* feat(server): Remember to include modifyDate despite no exif.

* feat(server): Remember to include model of Camera.

* feat(server): Fixing up Exiftool usage.

Including proper logging for it, which had to be done in wrapped fashion due to it expecting all the logging levels which NextJS logger doesn't implement.

* feat(server): Do not use a wrapper for ExifTool logging.

* fix merge conflicts in metadata-extractor
2023-01-17 09:29:49 -06:00
Jason Rasmussen
693adf8488
refactor: job names (#1343)
* refactor: job names

* refactor: remove jobId
2023-01-17 08:43:45 -06:00
Jason Rasmussen
adacfb1110
feat(cli): list users (#1341) 2023-01-16 18:31:46 -06:00
Jason Rasmussen
1e2f02613f
refactor: reset admin password (#1335)
* refactor: reset-admin-password

* chore: docs
2023-01-16 12:09:04 -06:00
Jaime Baez
036d0556a4
Fix e2e tests (#1321)
* Fix e2e tests

* Enable e2e tests in CI

* Remove unnecessary TypeOrmModule from e2e tests
2023-01-15 13:08:24 -06:00
Alex
e9fda40b2b
feat(web) Individual assets shared mechanism (#1317)
* Create shared link modal for individual asset

* Added API to create asset shared link

* Added viewer for individual shared link

* Added multiselection app bar

* Refactor gallery viewer to its own component

* Refactor

* Refactor

* Add and remove asset from shared link

* Fixed test

* Fixed notification card doesn't wrap

* Add check asset access when created asset shared link

* pr feedback
2023-01-14 23:49:47 -06:00
Jason Rasmussen
ba04b753de
refactor: logging (#1318) 2023-01-13 08:23:12 -06:00
Jason Rasmussen
92ca447f33
refactor(server): use UserService (#1309)
* refactor: communication gateway

* refactor: share strategy

* refactor: communication module
2023-01-12 20:15:45 -06:00
Alex
6db541c89b
chore(server) Update NestJs to V9 (#1312)
* chore(server) update nestjs to v9

* remove deadcode

* downgrade local-reverse-geocoder

* Added ignore script

* remove ignore script

* Fixed local-reverse-geocoder to a working version

* Fixed issue with eslint mismatch typescript version

* chore: remove unused package

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-01-12 16:07:27 -06:00
Jason Rasmussen
67c52c3764
chore(docs): contributing (#1311)
* chore(server): linting

* chore: contributing pr checklist
2023-01-12 08:44:11 -06:00
Jason Rasmussen
131caa20eb
refactor(server): domain/infra (#1298)
* refactor: user repository

* refactor: user module

* refactor: move database into infra

* refactor(cli): use user core

* chore: import path

* chore: tests
2023-01-11 21:34:36 -05:00
Alex Tran
3c09482a93
Pump 2023-01-10 16:04:06 -06:00
Alex
a648da021f
fix(server) fix order of asset in shared album to be similar to the actual album (#1293) 2023-01-10 15:57:03 -06:00
Alex
2ffb7cab2e
fix(web) add disable property to generated shared link (#1287) 2023-01-10 10:34:16 -06:00
Alex
7add754fc3
fix(web) show exif info in public shared (#1283)
* fix(web) show exif in public share page

* Added exif info to return payload'
2023-01-10 10:03:15 -06:00
Alex Tran
6b9a4a8d6f pump 2023-01-09 22:12:17 -06: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
10789503c1
feat(web/server) public album sharing (#1266) 2023-01-09 14:16:08 -06:00
Jason Rasmussen
fd15cdbf40
fix(server): log user delete errors (#1255) 2023-01-04 15:33:13 -06:00
Jason Rasmussen
9e6d6b2532
feat(web,server): api keys (#1244)
* feat(server): api keys

* chore: open-api

* feat(web): api keys

* fix: remove keys when deleting a user
2023-01-02 14:22:33 -06:00
Jason Rasmussen
d9fa6619e7
refactor(server): imports and repository tokens (#1220)
* refactor: entity imports

* refactor: rename user repository token

* chore: merge imports

* refactor: rename album repository token

* refactor: rename asset repository token

* refactor: rename tag repository token
2022-12-30 07:22:06 -06:00
Jason Rasmussen
6974d4068b
feat(server): mobile oauth with custom scheme redirect uri (#1204)
* feat(server): support providers without support for custom schemas

* chore: unit tests

* chore: test mobile override

* chore: add details to the docs
2022-12-29 14:47:30 -06:00
Alex
1eb9ac8217
fix(server) Cannot change first time password due to null in first and last name payload (#1205)
* fix(server) Cannot change first time password due to null in first and last name payload

* Added error message for form on the web
2022-12-28 21:07:04 -06:00
Jason Rasmussen
c032cfd99e
chore(server): fix unit test (#1194) 2022-12-27 20:29:58 -06:00
Jason Rasmussen
380f719fd8
feat(server,web): update email address (#1186)
* feat: change email

* test: change email
2022-12-27 10:36:31 -06:00
Alex
fdf51a8855
chore(server) Increase cache-control time (#1189)
* chore(server) Increase cache-control time

* Update version for openapi
2022-12-27 10:13:44 -06:00
Alex Tran
9c38cc42f6
Up version for release 2022-12-27 09:53:04 -06:00
Jason Rasmussen
c27c89a680
feat(server): extend jwt expiration (#1187) 2022-12-27 09:42:01 -06:00
Jason Rasmussen
4e860b024b
refactor(server): drop salt column (#1185) 2022-12-26 23:03:14 -05:00
Jason Rasmussen
0c896d9e59
test(server): change password (#1177) 2022-12-26 16:36:06 -06:00
Jason Rasmussen
7dc12dea1e
feat(web,server): link/unlink oauth account (#1154)
* feat(web,server): link/unlink oauth account

* chore: linting

* fix: broken oauth callback

* fix: user core bugs

* fix: tests

* fix: use user response

* chore: update docs

* feat: prevent the same oauth account from being linked twice

* chore: mock logger
2022-12-26 09:35:52 -06:00
Jaime Baez
20c5578470
Make user business logic reusable (#1114)
- Refactor user business logic from `user.service` into `user.domain`
  Make user business logic reusable by using `user.domain` from other services than `user.service`

- Add `jest-when` lib to make testing easier and use it in `userService`
  Using when helps from coupling tests to order of mock implementations execution

- Move all user business logic from user-repository to user.service

- Fix user.service tests not awaiting promises leaking state between tests

- Presentation logic for `getUserProfileImage` moved from UserService to UserController

- Fix `user.e2e` test logic. Pending fixing the configuration of the test itself
2022-12-23 21:08:50 +01:00
Alex Tran
ab56ab9b27
Added log for unsupported Mime type 2022-12-22 21:24:28 -06:00
Jason Rasmussen
7966c925ea
fix: increase oauth timeout (#1155) 2022-12-21 14:44:28 -06:00
Jason Rasmussen
14db7a09e3
feat(web): user profile (#1148)
* fix: allow updateUser for admin account

* feat: update user first/last name

* feat(web): change password
2022-12-21 08:43:35 -06:00
Jason Rasmussen
21d6874e54
fix(server) utf8 original filename (#1147) 2022-12-20 21:46:57 -06:00
Alex
b88e24678b
Up version for release 2022-12-19 12:27:07 -06:00
Alex
de69d0031e
chore(server) Add job for storage migration (#1117) 2022-12-19 12:13:10 -06: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
Alex Tran
1efcac0946
Pump Patch 2022-12-11 14:25:51 -06:00
Matthias Rupp
415550f16d
fix(server): Allow access to assets in shared album owned by current user (#1094)
* fix(server): Allow access to assets in shared album owned by current user

* Fix sql query

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2022-12-11 14:24:06 -06:00
Alex
2876c7ff97
Fix(server) Microservice didn't trigger to remove user (#1090) 2022-12-10 18:01:29 -06:00
Alex Tran
f2cc7c2873 Fix(server) fix cannot change user password from mobile app due to first and last name property don't get passed from the app 2022-12-10 10:36:41 -06:00
Alex Tran
09103dc981
Fixed upsert new DeviceInfo with null isAutoBackup property 2022-12-10 08:36:21 -06:00
Alex
0633eaf68c
Pump 2022-12-09 15:19:22 -06:00
Jason Rasmussen
14889e7d85
fix(server): require local admin account (#1070) 2022-12-09 14:53:11 -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
Jason Rasmussen
cefdd86b7f
refactor(server): device info service (#1071)
* refactor(server): device info service

* use upsertDeviceInfo in mobile app

* fix: return types and dedupe code

Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
2022-12-08 09:57:07 -06:00
Jason Rasmussen
58a149990d
refactor(server): server version logging (#1073)
* refactor(server): server version logging

* chore: server => microservices
2022-12-08 09:53:18 -06:00
bo0tzz
a97b761eda
Add generated openapi docs to website (#1067)
* Add generated openapi docs to website

* Uppercase API link in navbar

* fix(docs): open api empty summary (#1069)

* feat(docs): Use /docs/api path for swagger docs

* Sync api version to be the same as the server

* Update version

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2022-12-07 21:57:34 -06:00
Alex
f91bdc2785
fix(server) added TagResponseDto for TagController (#1065)
* fix(server) added TagResponseDto for TagController

* Added userId to DTO
2022-12-06 15:46:13 -06:00
Alex
db34f2f7fd
fix(server) fix correct MIME type for Nikon NEF (#1060) 2022-12-05 12:05:02 -06:00
Alex
5de8ea162d
feat(server) Tagging system (#1046) 2022-12-05 11:56:44 -06:00
Matthias Rupp
e8bbad6772
feat(server): Per user asset access control (#993)
* Limit asset access to owner

* Check public albums for asset

* Clean up

* Fix test

* Rename repository method

* Simplify control flow

* Revert "Simplify control flow"

This reverts commit 7bc3cbf687.

* Revert Makefile change
2022-12-04 11:42:36 -06:00
Jason Rasmussen
99854e90be
feat(server): link via profile.sub (#1055) 2022-12-03 21:59:24 -06:00
Alex
a384798779
Up version for release 2022-11-30 11:18:06 -06:00
Fynn Petersen-Frey
1068c4ad23
feat(server,web): activate ETags for all API endpoints and asset serving (#1031)
This greatly reduces the network traffic by app/web.
2022-11-29 15:45:47 -06:00
Alex
024177515d
feat(mobile) Add in app logging to show app's log information (#1014) 2022-11-27 14:34:19 -06:00
Alex Tran
fb3b36a569
Added test for user.service 2022-11-26 15:09:06 -06:00
Alex
614743c8f4
fix(server): Prevent delete admin user (#1023) 2022-11-26 15:02:23 -06:00
Fynn Petersen-Frey
47f5e4134e
feat(mobile): use cached asset info if unchanged instead of downloading all assets (#1017)
* feat(mobile): use cached asset info if unchanged instead of downloading all assets

This adds an HTTP ETag to the getAllAssets endpoint and client-side support in the app.
If locally cache content is identical to the content on the server, the potentially large list of all assets does not need to be downloaded.

* use ts import instead of require
2022-11-26 10:16:02 -06:00
Kiel Hurley
976d347623
feat(server,web,mobile): Use binary prefixes for data sizes (#1009) 2022-11-24 11:39:27 -06:00
Alex Tran
df0a059a02
Up patch version 2022-11-21 20:26:03 -06:00
Alex
cc697486fc
fix(server): Deleted shared users cause problem with album retrival and creation (#1002)
* fix(server): Deleted shared users cause problem with album retrival and creation

* Remove dead code
2022-11-21 20:24:56 -06:00
Alex Tran
bc9ee1d611 Added hotfix release note 2022-11-21 05:41:44 -06:00
Alex
a2f3b2199a
fix(server): Admin user not created (#996) 2022-11-20 23:25:03 -06:00
Alex Tran
6f5d60fb62
Up version for release 2022-11-20 13:13:27 -06:00
Alex
41ffa0c015
fix(server): Server freezes when getting statistic (#994)
* fix(server): Server freezes when getting statistic
* remove dead code
2022-11-20 13:09:31 -06:00
Alex
b3e51cc849
feat(mobile) Add OAuth Login On Mobile (#990)
* Added return type for oauth/callback

* Remove console.log

* Redirect app

* Wording

* Added loading state change

* Added OAuth login on mobile

* Return correct status for  correct redirection

* Auto discovery OAuth Login
2022-11-20 11:43:10 -06:00
Alex
8bc64be77b
feat: support iOS LivePhoto backup (#950) 2022-11-18 23:12:54 -06:00
Alex
e799f35dd2
chore(server) refactor serveFile and downloadFile endpoint (#978) 2022-11-16 00:11:16 -06:00
Jason Rasmussen
f2f255e6e6
feat(server): multi archive downloads (#956) 2022-11-15 09:51:56 -06:00
Jason Rasmussen
b5d75e2016
feat(server,web): system config for admin (#959)
* feat: add admin config module for user configured config, uses it for ffmpeg

* feat: add api endpoint to retrieve admin config settings and values

* feat: add settings panel to admin page on web (wip)

* feat: add api endpoint to update the admin config

* chore: re-generate openapi spec after rebase

* refactor: move from admin config to system config naming

* chore: move away from UseGuards to new @Authenticated decorator

* style: dark mode styling for lists and fix conflicting colors

* wip: 2 column design, no edit button

* refactor: system config

* chore: generate open api

* chore: rm broken test

* chore: cleanup types

* refactor: config module names

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Zack Pollard <zack.pollard@moonpig.com>
2022-11-14 22:39:32 -06:00
Jason Rasmussen
d3c35ec9c5
feat(server,web): OIDC Implementation (#884)
* chore: merge

* feat: nullable password

* feat: server debugger

* chore: regenerate api

* feat: auto-register flag

* refactor: oauth endpoints

* chore: regenerate api

* fix: default scope configuration

* refactor: pass in redirect uri from client

* chore: docs

* fix: bugs

* refactor: auth services and user repository

* fix: select password

* fix: tests

* fix: get signing algorithm from discovery document

* refactor: cookie constants

* feat: oauth logout

* test: auth services

* fix: query param check

* fix: regenerate open-api
2022-11-14 20:24:25 -06:00
Ian
f6aba0f9ec
feat(deployment) Allow overriding service host and ports with env variables (#930)
* Add proxy changes

* Add web changes

* Add microservices changes

* Add examples

* Add header comment to nginx config

* Use URLs instead of host and port
2022-11-09 05:11:32 -06:00
Alex
66640ebfeb
Up version for release 2022-11-08 14:34:47 -06:00
Jason Rasmussen
99da181cfc
feat(web): favorite an asset (#939)
* feat(web): favorite an asset

* fix: test and linting

* fix: asset dto type
2022-11-08 10:20:36 -06:00