immich/server
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 fix(server): memory fragmentation (#27027) 2026-03-26 18:21:52 +01:00
src feat(server)!: add isOwned filter to albums API (#28213) 2026-05-07 12:13:07 -04:00
test fix(server): av typing (#28223) 2026-05-04 09:04:29 -04:00
.gitignore feat(web): re-add open graph tags for public share links (#5635) 2023-12-11 13:37:47 -06:00
.npmignore chore: use pnpm for builds (#19752) 2025-08-19 08:55:24 -04:00
.nvmrc chore(deps): update node.js to v24.15.0 (#28006) 2026-04-21 09:47:32 +00:00
.prettierignore refactor: migrate map repository to kysely (#15348) 2025-01-17 09:14:42 -06:00
.prettierrc fix(server): lint import order (#3974) 2023-09-04 21:45:59 +02:00
Dockerfile chore(deps): update base-image to v202604141125 (major) (#27858) 2026-04-16 15:40:40 +00:00
Dockerfile.dev chore(deps): update base-image to v202604141125 (major) (#27858) 2026-04-16 15:40:40 +00:00
eslint.config.mjs feat(server): track video metadata (#28023) 2026-05-01 17:03:49 +00:00
helmet.json fix: csp quotes (#27592) 2026-04-07 15:54:30 -04:00
mise.toml feat: mise monorepo tasks (#23691) 2025-11-10 15:55:15 +01:00
nest-cli.json fix: isolate docker host/container filesystem for node_modules and build output (#21167) 2025-08-24 13:09:45 -05:00
package.json chore: pump version (#28231) 2026-05-05 16:27:04 -05:00
tsconfig.build.json chore: move .tsbuildinfo file to dist folder (#27682) 2026-04-10 16:02:25 +02:00
tsconfig.json chore: upgrade sql-tools (#27885) 2026-04-21 17:42:27 +00:00