mirror-immich/open-api
Timon 1fcc2b704b
feat(server)!: add isOwned filter to albums API (#28213)
* feat(server)!: add owned filter to albums API

BREAKING CHANGE: GET /albums with no parameters now returns all accessible albums (owned + shared-with-me) instead of only owned albums.

* document tri-state matrix

* web impl

* collapse to single method and handover branching to sql

* dedupe

* verify that owned, shared, and notShared counts are mapped independently from their respective queries

* refactor(server): add select:['id'] overload to albumRepository.getAll

Avoid fetching full album rows (with albumUsers/sharedLinks subqueries) in map.service where only album IDs are needed.

* focus relevant test filters

* fmt

* Revert "verify that owned, shared, and notShared counts are mapped independently from their respective queries"

This reverts commit 47aab458192c766de4662aada5a6841b091d2a80.

* sync sql

* Revert "document tri-state matrix"

This reverts commit a5b2355d0c6a084f2c021d517bf5ee80123d108c.

* address review comments

* inline shared condition and return as ternary

* sync sql

* use [...albums].sort

Array.toSorted() is not supported in Chrome 109

* use isShared and isOwned nomenclature

* fix e2e tests

* add params to sql query
2026-05-07 12:13:07 -04:00
..
bin chore: bump (#27866) 2026-04-16 11:32:33 -04:00
patch feat: mobile editing (#25397) 2026-04-15 09:26:40 -05:00
templates/mobile feat(mobile): edit location action (#19645) 2025-07-01 16:52:11 +00:00
typescript-sdk feat(server)!: add isOwned filter to albums API (#28213) 2026-05-07 12:13:07 -04:00
immich-openapi-specs.json feat(server)!: add isOwned filter to albums API (#28213) 2026-05-07 12:13:07 -04:00
openapitools.json chore: upgrade openapi generator version (#12358) 2024-09-05 11:31:48 -05:00