clip-search: accept library_ids (multi-select whitelist) on /photos/search #97

Merged
cameron merged 1 commits from feature/clip-search-library-ids into master 2026-05-16 13:38:00 +00:00
Owner

Previously the endpoint only accepted library=<id> (single id) — multi-
select scopes had to be filtered upstream by Apollo, which kept the
filter logic out of FileViewer-React's reach (it calls ImageApi
directly and got no scoping for 2+ active libraries).

Adds library_ids (comma-separated id list, e.g. ?library_ids=1,3).
Parsed inside the existing scope decision: library_ids wins when
both are supplied; either / both empty falls back to "every enabled
library" (historical default). Malformed entries return 400.

Dedupes ids while preserving order so a stray library_ids=1,1,3
doesn't double-pass to the DAO. The single-id path still works
unchanged for older clients.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

Previously the endpoint only accepted `library=<id>` (single id) — multi- select scopes had to be filtered upstream by Apollo, which kept the filter logic out of FileViewer-React's reach (it calls ImageApi directly and got no scoping for 2+ active libraries). Adds `library_ids` (comma-separated id list, e.g. `?library_ids=1,3`). Parsed inside the existing scope decision: `library_ids` wins when both are supplied; either / both empty falls back to "every enabled library" (historical default). Malformed entries return 400. Dedupes ids while preserving order so a stray `library_ids=1,1,3` doesn't double-pass to the DAO. The single-id path still works unchanged for older clients. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
cameron added 1 commit 2026-05-16 13:37:56 +00:00
Previously the endpoint only accepted `library=<id>` (single id) — multi-
select scopes had to be filtered upstream by Apollo, which kept the
filter logic out of FileViewer-React's reach (it calls ImageApi
directly and got no scoping for 2+ active libraries).

Adds `library_ids` (comma-separated id list, e.g. `?library_ids=1,3`).
Parsed inside the existing scope decision: `library_ids` wins when
both are supplied; either / both empty falls back to "every enabled
library" (historical default). Malformed entries return 400.

Dedupes ids while preserving order so a stray `library_ids=1,1,3`
doesn't double-pass to the DAO. The single-id path still works
unchanged for older clients.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
cameron merged commit 3162a4f477 into master 2026-05-16 13:38:00 +00:00
cameron deleted branch feature/clip-search-library-ids 2026-05-16 13:38:01 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Apps/ImageApi#97