POST /api/libraries/:id/scan accepts an optional {"folder_path": "..."}:
the scan then covers exactly that one registered folder's subtree instead
of the whole library. The path is validated against the library's
registered folders — anything else is a 400, never trusted. An omitted
body keeps today's full-library behavior, and coalescing (409 with the
active job) is unchanged.
The LibraryPanel folder rows get a per-folder Scan button: pure htmx
attributes posting to the same scan endpoint, with hxValsFolderScan
emitting plain eval-free JSON for hx-vals alongside the existing
hxValsFolderDelete precedent. Progress surfaces through the existing
active-scan polling; no new client code.
Safety: the scanner's archive-reconciliation guard (previous commit)
skips partially-covered libraries, so a one-folder scan cannot mark the
library's other folders' items missing.
24 lines
551 B
YAML
24 lines
551 B
YAML
info:
|
|
name: Scan Library
|
|
type: http
|
|
seq: 19
|
|
|
|
http:
|
|
method: POST
|
|
url: '{{base_url}}/api/libraries/{{ebook_library_id}}/scan'
|
|
auth: inherit
|
|
settings:
|
|
encodeUrl: true
|
|
timeout: 0
|
|
followRedirects: true
|
|
maxRedirects: 5
|
|
|
|
docs:
|
|
content: |-
|
|
# Scan Library
|
|
|
|
`POST /api/libraries/:id/scan` — auth: jwt+admin.
|
|
|
|
Canonical reference: docs/developer/api/libraries/scan_library.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
|
|
type: text/markdown
|