feat(book-requests): add automated request fulfillment

Let users request books, route approvals, search configured sources, and import fulfilled releases through the Book Dock. Include scoped permissions, automation, download-client integrations, plugin support, requester visibility, and one consolidated schema migration.

Closes #248
Ref #1115
This commit is contained in:
neon
2026-08-31 16:33:40 +00:00
parent 0f5429131a
commit fc6e6f03d5
443 changed files with 87915 additions and 1730 deletions
@@ -1,14 +1,14 @@
{
"totalRoutes": 376,
"totalRoutes": 452,
"byPermission": {
"(none)": 166,
"(none)": 167,
"Permission.ManageMetadataConfig": 34,
"Permission.EmailSend": 30,
"Permission.LibraryEditMetadata": 33,
"Permission.BookDockAccess": 16,
"Permission.ManageAppSettings": 22,
"Permission.ManageLibraries": 14,
"Permission.ManageUsers": 11,
"Permission.LibraryEditMetadata": 34,
"Permission.BookDockAccess": 17,
"Permission.ManageAppSettings": 39,
"Permission.ManageLibraries": 17,
"Permission.ManageUsers": 13,
"Permission.ManageEmail": 8,
"Permission.KoboSync": 7,
"Permission.NotificationAccess": 6,
@@ -17,17 +17,20 @@
"Permission.OpdsAccess": 4,
"Permission.ViewAuditLog": 1,
"Permission.ViewUserActivity": 6,
"Permission.LibraryDeleteBooks": 1,
"Permission.LibraryDeleteBooks": 10,
"Permission.LibraryDownload": 1,
"Permission.LibraryUpload": 2,
"Permission.ManageBookDock": 3,
"Permission.ManageIcons": 1,
"Permission.HardcoverSync": 1,
"Permission.ReadwiseSync": 1,
"Permission.StorygraphSync": 1
"Permission.StorygraphSync": 1,
"Permission.BookRequestAccess": 25,
"Permission.ManageBookRequests": 20,
"Permission.BookRequestSelfFulfill": 11
},
"byLibraryAccess": {
"'viewer'": 3,
"'viewer'": 4,
"'editor'": 1
},
"routeChunks": [