Commit Graph

2829 Commits (4e9b96ff1a4228133ea2ecb42f0712cb28ca34cd)
 

Author SHA1 Message Date
Jonathan Jogenfors 4e9b96ff1a
test(cli): e2e testing (#5101)
* Allow building and installing cli

* feat: add format fix

* docs: remove cli folder

* feat: use immich scoped package

* feat: rewrite cli readme

* docs: add info on running without building

* cleanup

* chore: remove import functionality from cli

* feat: add logout to cli

* docs: add todo for file format from server

* docs: add compilation step to cli

* fix: success message spacing

* feat: can create albums

* fix: add check step to cli

* fix: typos

* feat: pull file formats from server

* chore: use crawl service from server

* chore: fix lint

* docs: add cli documentation

* chore: rename ignore pattern

* chore: add version number to cli

* feat: use sdk

* fix: cleanup

* feat: album name on windows

* chore: remove skipped asset field

* feat: add more info to server-info command

* chore: cleanup

* wip

* chore: remove unneeded packages

* e2e test can start

* git ignore for geocode in cli

* add cli e2e to github actions

* can do e2e tests in the cli

* simplify e2e test

* cleanup

* set matrix strategy in workflow

* run npm ci in server

* choose different working directory

* check out submodules too

* increase test timeout

* set node version

* cli docker e2e tests

* fix cli docker file

* run cli e2e in correct folder

* set docker context

* correct docker build

* remove cli from dockerignore

* chore: fix docs links

* feat: add cli v2 milestone

* fix: set correct cli date

* remove submodule

* chore: add npmignore

* chore(cli): push to npm

* fix: server e2e

* run npm ci in server

* remove state from e2e

* run npm ci in server

* reshuffle docker compose files

* use new e2e composes in makefile

* increase test timeout to 10 minutes

* make github actions run makefile e2e tests

* cleanup github test names

* assert on server version

* chore: split cli e2e tests into one file per command

* chore: set cli release working dir

* chore: add repo url to npmjs

* chore: bump node setup to v4

* chore: normalize the github url

* check e2e code in lint

* fix lint

* test key login flow

* feat: allow configurable config dir

* fix session service tests

* create missing dir

* cleanup

* bump cli version to 2.0.4

* remove form-data

* feat: allow single files as argument

* add version option

* bump dependencies

* fix lint

* wip use axios as upload

* version bump

* cApiTALiZaTiON

* don't touch package lock

* wip: don't use job queues

* don't use make for cli e2e

* fix server e2e

* chore: remove old gha step

* add npm ci to server

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-12-18 20:29:26 +07:00
martin baed16dab6
fix(web): shared link background color on dark mode (#5846) 2023-12-18 20:26:55 +07:00
Jon Howell a7b4727c20
feat(docs): Add a linear quick-start guide (#5812)
* feat(docs): Add a linear quick-start guide

* prettier

* fix: format

* removed unused text

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-12-18 20:45:49 +07:00
Alex 9834693fab
fix(web): access /search throw error (#5834) 2023-12-18 14:42:25 +07:00
shenlong 085dc6cd93
fix(mobile): use safe area for gallery_viewer bottom sheet (#5831)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2023-12-18 11:22:06 +07:00
Mert de1514a441
chore(server): startup check for pgvecto.rs (#5815)
* startup check for pgvecto.rs

* prefilter after assertion

* formatting

* add assert to migration

* more specific import

* use runner
2023-12-18 10:38:25 +07:00
Alex fade8b627f
chore(web): display places on a single row (#5825) 2023-12-18 10:34:25 +07:00
Jason Rasmussen d3e1572229
fix(server): file sending and cache control (#5829)
* fix: file sending

* fix: tests
2023-12-18 10:33:46 +07:00
Alex ffc31f034c
chore(mobile): handle delete file error (#5827) 2023-12-18 09:54:42 +07:00
Alex 3beeffaaf0
fix(server): metadata search does not return all EXIF info (#5810)
* docs: update default config content

* fix(server): metadata search does not return all EXIF info

* remove console log

* generate sql

* Correct sql generation
2023-12-18 07:13:36 +07:00
Ferdinand Mütsch b68800d45c
chore(docs): add caddy reverse proxy config example (#5777) 2023-12-18 02:22:59 +07:00
Mert b520955d0e
fix(server): add more conditions to smart search (#5806)
* add more asset conditions

* udpate sql
2023-12-17 20:17:30 +07:00
Mert 6e7b3d6f24
fix(server): fix metadata search not working (#5800)
* don't require ml

* update e2e

* fixes

* fix e2e

* add additional conditions

* select all exif columns

* more fixes

* update sql
2023-12-17 20:16:08 +07:00
Alex c45e8cc170
fix(web): cannot open map cluster (#5797) 2023-12-17 20:13:55 +07:00
Michael Manganiello c6f56d9591
chore(server): Check activity permissions in bulk (#5775)
Modify Access repository, to evaluate `asset` permissions in bulk.
This is the last set of permission changes, to migrate all of them to
run in bulk!
Queries have been validated to match what they currently generate for single ids.

Queries:

* `activity` owner access:

```sql
-- Before
SELECT 1 AS "row_exists" FROM (SELECT 1 AS dummy_column) "dummy_table" WHERE EXISTS (
  SELECT 1
  FROM "activity" "ActivityEntity"
  WHERE
    "ActivityEntity"."id" = $1
    AND "ActivityEntity"."userId" = $2
)
LIMIT 1

-- After
SELECT "ActivityEntity"."id" AS "ActivityEntity_id"
FROM "activity" "ActivityEntity"
WHERE
  "ActivityEntity"."id" IN ($1)
  AND "ActivityEntity"."userId" = $2
```

* `activity` album owner access:

```sql
-- Before
SELECT 1 AS "row_exists" FROM (SELECT 1 AS dummy_column) "dummy_table" WHERE EXISTS (
  SELECT 1
  FROM "activity" "ActivityEntity"
    LEFT JOIN "albums" "ActivityEntity__ActivityEntity_album"
      ON "ActivityEntity__ActivityEntity_album"."id"="ActivityEntity"."albumId"
      AND "ActivityEntity__ActivityEntity_album"."deletedAt" IS NULL
  WHERE
    "ActivityEntity"."id" = $1
    AND "ActivityEntity__ActivityEntity_album"."ownerId" = $2
)
LIMIT 1

-- After
SELECT "ActivityEntity"."id" AS "ActivityEntity_id"
FROM "activity" "ActivityEntity"
  LEFT JOIN "albums" "ActivityEntity__ActivityEntity_album"
    ON "ActivityEntity__ActivityEntity_album"."id"="ActivityEntity"."albumId"
    AND "ActivityEntity__ActivityEntity_album"."deletedAt" IS NULL
WHERE
  "ActivityEntity"."id" IN ($1)
  AND "ActivityEntity__ActivityEntity_album"."ownerId" = $2
```

* `activity` create access:

```sql
-- Before
SELECT 1 AS "row_exists" FROM (SELECT 1 AS dummy_column) "dummy_table" WHERE EXISTS (
  SELECT 1
  FROM "albums" "AlbumEntity"
    LEFT JOIN "albums_shared_users_users" "AlbumEntity_AlbumEntity__AlbumEntity_sharedUsers"
      ON "AlbumEntity_AlbumEntity__AlbumEntity_sharedUsers"."albumsId"="AlbumEntity"."id"
    LEFT JOIN "users" "AlbumEntity__AlbumEntity_sharedUsers"
      ON "AlbumEntity__AlbumEntity_sharedUsers"."id"="AlbumEntity_AlbumEntity__AlbumEntity_sharedUsers"."usersId"
      AND "AlbumEntity__AlbumEntity_sharedUsers"."deletedAt" IS NULL
  WHERE
    (
      (
        "AlbumEntity"."id" = $1
        AND "AlbumEntity"."isActivityEnabled" = $2
        AND "AlbumEntity__AlbumEntity_sharedUsers"."id" = $3
      )
      OR (
        "AlbumEntity"."id" = $4
        AND "AlbumEntity"."isActivityEnabled" = $5
        AND "AlbumEntity"."ownerId" = $6
      )
    )
    AND "AlbumEntity"."deletedAt" IS NULL
)
LIMIT 1

-- After
SELECT "AlbumEntity"."id" AS "AlbumEntity_id"
FROM "albums" "AlbumEntity"
  LEFT JOIN "albums_shared_users_users" "AlbumEntity_AlbumEntity__AlbumEntity_sharedUsers"
    ON "AlbumEntity_AlbumEntity__AlbumEntity_sharedUsers"."albumsId"="AlbumEntity"."id"
  LEFT JOIN "users" "AlbumEntity__AlbumEntity_sharedUsers"
    ON "AlbumEntity__AlbumEntity_sharedUsers"."id"="AlbumEntity_AlbumEntity__AlbumEntity_sharedUsers"."usersId"
    AND "AlbumEntity__AlbumEntity_sharedUsers"."deletedAt" IS NULL
WHERE
  (
    (
      "AlbumEntity"."id" IN ($1)
      AND "AlbumEntity"."isActivityEnabled" = $2
      AND "AlbumEntity__AlbumEntity_sharedUsers"."id" = $3
    )
    OR (
      "AlbumEntity"."id" IN ($4)
      AND "AlbumEntity"."isActivityEnabled" = $5
      AND "AlbumEntity"."ownerId" = $6
    )
  )
  AND "AlbumEntity"."deletedAt" IS NULL
```
2023-12-17 12:10:21 +07:00
Alex 691e20521d
docs: update default config content (#5798) 2023-12-17 12:07:53 +07:00
Quek 27f8dd6040
doc: documentation of the Immich Flutter Architectural Pattern (#5748)
* Added Documentation of the Immich Flutter Architectural Pattern

* Update README.md

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-12-17 17:51:03 +07:00
Mert e3fa32ad23
fix(server): fix inconsistent explore queries (#5774)
* remove limits

* update sql
2023-12-17 11:04:35 +07:00
Alex The Bot 08f66c2ae5 Version v1.91.3 2023-12-17 16:57:16 +07:00
Mert 4f38a283b4
fix(server): stricter dim size check for pgvecto.rs migration (#5767)
* stricter dim size check

* remove unused import

* added null check
2023-12-17 10:55:35 +07:00
Jon Howell 00771899da
fix(docs): remove inline dev inquiries (#5733)
* fix(docs): correct link; remove inline dev inquiries

* unfix relative path
2023-12-17 10:46:29 +07:00
Mert 09402eb6d0
fix(ml): disable core dumps (#5770)
* update dockerfile

* remove sysctl line
2023-12-16 20:30:29 +07:00
Jon Howell d9b5adf0f7
fix(docs): remove spurious hyphen in docker compose cmd (#5771)
The command example is correct, but the text just before it still references the old docker-compose command.
2023-12-16 19:49:14 +07:00
Alex The Bot a15c799ba3 Version v1.91.2 2023-12-16 23:19:58 +07:00
Daniel Dietzler bda9fd9dfe
fix(web): settings switch state when disabled, simplify classes (#5762) 2023-12-16 17:17:38 +07:00
Daniel Dietzler 19754d4b21
fix clip concurrency not being persisted after queue renaming (#5769) 2023-12-16 22:32:15 +07:00
Alex 62347edf43
chore(web): improve map pin (#5761)
* chore(web): improve map pin

* zoom level
2023-12-16 20:21:13 +07:00
Daniel Dietzler 67f020380f
disable version check settings when config file is set (#5756) 2023-12-16 20:39:17 +07:00
Alex The Bot 0aae9696f6 Version v1.91.1 2023-12-16 17:26:51 +07:00
martin 2f95cb89c1
fix(web): use env for web folder path (#5753)
* fix: use env for web folder path

* feat: use constant

* fix: use join

* update docs

* fix: icon
2023-12-16 11:15:30 +07:00
Mert cb1201e690
chore(web): update job dashboard (#5745)
* rename clip encoding to smart search

* update job subtitles

* update api

* update smart search job title and subtitle

* fix `getJobName`

* change smart search icon

* formatting

* wording

* update reference to clip

* formatting

* update reference to Encode CLIP
2023-12-16 10:50:46 +07:00
Daniel Dietzler a2deba4734
fix(web): never ungroup map markers. ever. (#5730) 2023-12-16 10:49:58 +07:00
Alex ae2608e31d
fix(web): cannot save exclusion pattern (#5738)
* fix(web): Ccannot save exclusive pattern

* remove console log
2023-12-16 10:48:49 +07:00
Mert d8756f3897
fix(web): searching places (#5746) 2023-12-16 10:48:27 +07:00
Mohamed BOUSSAID 7839be3b49
Adding the new models to the whitelist (#5736) 2023-12-15 22:45:14 +07:00
Jason Rasmussen 94e11d52dc
docs: fix redirects for cloudflare (#5734) 2023-12-15 15:20:50 +07:00
Jon Howell 05a1283500
fix(docs): Add title for External Library guide (#5732) 2023-12-15 14:38:14 +07:00
Alex f8519d60c7
chore: post release tasks 2023-12-15 13:25:37 +07:00
Jon Howell 899c71f297
docs: add a walk-through guide for External Libraries (#5594)
* Add a walk-through guide for External Libraries

* Apply prettier to markdown

* Add screenshots for GUI elements

* fix format
2023-12-15 12:46:43 +07:00
martin 2aa5f55cbf
docs: update milestone page (#5663) 2023-12-15 09:50:13 +07:00
Alex The Bot e9a8daa924 Version v1.91.0 2023-12-15 15:22:37 +07:00
Alex c2cda5f3b0
fix(web): map thumbnail stretch (#5721) 2023-12-15 09:17:28 +07:00
bo0tzz e29b80845b
chore: Update docs url config (#5716) 2023-12-15 08:57:36 +07:00
dependabot[bot] 6c3bfc6f0f
chore(deps): bump actions/upload-artifact from 3 to 4 (#5719)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-15 08:56:47 +07:00
dependabot[bot] 9cc904fb2a
chore(deps): bump actions/download-artifact from 3 to 4 (#5718)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-15 08:56:11 +07:00
Mert 3e54ee5052
feat(ml): add new models (#5710) 2023-12-14 23:34:41 +07:00
Mert 458257847e
fix(server): disable classification by default (#5708)
* disable classification by default

* fixed tests
2023-12-14 23:34:18 +07:00
renovate[bot] 16f385626e
chore(deps): update dependency sql-formatter to v15 (#5709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-15 00:28:05 +07:00
renovate[bot] e05c7f5b76
chore(deps): update mambaorg/micromamba:bookworm-slim docker digest to 5ea70d2 (#5707)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-14 23:09:48 +07:00
renovate[bot] 5c8eaa6859
chore(deps): update base-image to v20231214 (#5705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-12-14 21:22:06 +07:00