1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-25 10:43:13 +02:00
immich/server
Jonathan Jogenfors 1b54c4f8e7
feat(server): Add support for client-side hashing (#2072)
* Modify controller DTOs

* Can check duplicates on server side

* Remove deviceassetid and deviceid

* Remove device ids from file uploader

* Add db migration for removed device ids

* Don't sanitize checksum

* Convert asset checksum to string

* Make checksum not optional for asset

* Use enums when rejecting duplicates

* Cleanup

* Return of the device id, but optional

* Don't use deviceId for upload folder

* Use checksum in thumb path

* Only use asset id in thumb path

* Openapi generation

* Put deviceAssetId back in asset response dto

* Add missing checksum in test fixture

* Add another missing checksum in test fixture

* Cleanup asset repository

* Add back previous /exists endpoint

* Require checksum to not be null

* Correctly set deviceId in db

* Remove index

* Fix compilation errors

* Make device id nullabel in asset response dto

* Reduce PR scope

* Revert asset service

* Reorder imports

* Reorder imports

* Reduce PR scope

* Reduce PR scope

* Reduce PR scope

* Reduce PR scope

* Reduce PR scope

* Update openapi

* Reduce PR scope

* refactor: asset bulk upload check

* chore: regenreate open-api

* chore: fix tests

* chore: tests

* update migrations and regenerate api

* Feat: use checksum in web file uploader

* Change to wasm-crypto

* Use crypto api for checksumming in web uploader

* Minor cleanup of file upload

* feat(web): pause and resume jobs

* Make device asset id not nullable again

* Cleanup

* Device id not nullable in response dto

* Update API specs

* Bump api specs

* Remove old TODO comment

* Remove NOT NULL constraint on checksum index

* Fix requested pubspec changes

* Remove unneeded import

* Update server/apps/immich/src/api-v1/asset/asset.service.ts

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

* Update server/apps/immich/src/api-v1/asset/asset-repository.ts

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

* Remove unneeded check

* Update server/apps/immich/src/api-v1/asset/asset-repository.ts

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

* Remove hashing in the web uploader

* Cleanup file uploader

* Remove varchar from asset entity fields

* Return 200 from bulk upload check

* Put device asset id back into asset repository

* Merge migrations

* Revert pubspec lock

* Update openapi specs

* Merge upstream changes

* Fix failing asset service tests

* Fix formatting issue

* Cleanup migrations

* Remove newline from pubspec

* Revert newline

* Checkout main version

* Revert again

* Only return AssetCheck

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
2023-05-24 16:08:21 -05:00
..
apps feat(server): Add support for client-side hashing (#2072) 2023-05-24 16:08:21 -05:00
bin chore(mobile): Upgrade to Flutter 3.10 (#2429) 2023-05-12 09:21:13 -05:00
libs feat(server): Add support for client-side hashing (#2072) 2023-05-24 16:08:21 -05:00
openapi-generator chore: update api (#2428) 2023-05-11 10:49:28 -05:00
.dockerignore feat(immich-server) use ubuntu base-image (#851) 2022-10-24 14:59:07 -05:00
.eslintrc.js chore(docs): contributing (#1311) 2023-01-12 08:44:11 -06:00
.gitignore Added generated geocoding files to gitignore 2022-09-28 15:44:43 -05:00
.prettierignore chore(docs): contributing (#1311) 2023-01-12 08:44:11 -06:00
.prettierrc Add web interface with admin functionality (#167) 2022-05-21 02:23:55 -05:00
Dockerfile docker: use default entrypoint and command where applicable (#2529) 2023-05-23 09:02:47 -05:00
immich-openapi-specs.json feat(server): Add support for client-side hashing (#2072) 2023-05-24 16:08:21 -05:00
LICENSE feat(docker) revert ubuntu base image (#863) 2022-10-25 14:18:37 -05:00
nest-cli.json chore: remove unused config (#2121) 2023-03-30 12:22:25 -05:00
openapitools.json chore(server): update openapi (#2205) 2023-04-08 21:26:09 -05:00
package-lock.json Version v1.57.1 2023-05-23 09:21:22 +00:00
package.json Version v1.57.1 2023-05-23 09:21:22 +00:00
README.md feat(server,web): system config for admin (#959) 2022-11-14 22:39:32 -06:00
start-microservices.sh feat(deployment): support docker secrets (#1254) 2023-02-05 23:38:06 -06:00
start-server.sh feat(deployment): support docker secrets (#1254) 2023-02-05 23:38:06 -06:00
tsconfig.build.json Transfer repository from Gitlab 2022-02-03 10:06:44 -06:00
tsconfig.json refactor(server): common (#2066) 2023-03-23 23:55:15 -05:00

How to run migration

  1. Attached to the container shell
  2. Run npm run typeorm -- migration:generate ./libs/database/src/<migration-name> -d libs/database/src/config/database.config.ts
  3. Check if the migration file makes sense
  4. Move the migration file to folder server/libs/database/src/migrations in your code editor.