INKHOLD

Contributor · Reference

HTTP API#

Every route Inkhold serves, 109 of them, in the order of the route table. Who is the caller’s scope: public needs no session, device is a tablet, controlplane the browser app, pending a first sign-in that must still change its password. A caller outside a route’s scopes gets 403. Read-only routes run on a pooled reader, streams take the database lock only around their own reads and writes (Threads and locks). The device routes’ behaviour is in Device protocol.

General#

MethodPathWhoHandlerNotes
GET/api/versionpublicauth.versionread-only

Auth#

MethodPathWhoHandlerNotes
POST/api/official/user/query/random/codepublicauth.randomCode20 per 60 s by ip
POST/api/official/user/account/login/newpublicauth.loginNew10 per 60 s by ip
POST/api/official/user/account/login/equipmentpublicauth.loginNew10 per 60 s by ip
PUT/api/user/passwordcontrolplane, pendingauth.changePassword5 per 300 s by user
POST/api/user/logoutcontrolplane, device, pendingauth.logout
GET/api/user/mecontrolplane, pendingauth.me

Device / sync#

MethodPathWhoHandlerNotes
POST/api/terminal/equipment/unlinkpublicdevice.unlinkEquipmentLenient20 per 60 s by ip
POST/api/official/user/check/exists/serverpublicdevice.checkExists20 per 60 s by ip
GET/api/file/query/serverpublicdevice.queryServerread-only
POST/api/terminal/user/bindEquipmentdevice, publicdevice.bindEquipment
POST/api/user/querydevicedevice.userQueryread-only
POST/api/equipment/bind/statusdevicedevice.bindStatusread-only
POST/api/file/capacity/querydevicedevice.capacityQueryread-only
POST/api/file/2/users/get_space_usagedevicedevice.getSpaceUsageread-only
POST/api/file/2/files/synchronous/startdevicedevice.syncStart
POST/api/file/2/files/synchronous/enddevicedevice.syncEnd
POST/api/file/query/summary/hashdevicedevice.summaryHashread-only
POST/api/file/query/summary/iddevicedevice.summaryByIdread-only
POST/api/file/query/summary/groupdevicedevice.summaryGroupread-only
POST/api/file/2/files/list_folderdevicedevice.listFolderstreams
POST/api/file/3/files/query/by/path_v3devicedevice.queryByPathV3read-only
POST/api/file/3/files/query_v3devicedevice.queryV3read-only
POST/api/file/3/files/download_v3devicedevice.downloadV3
POST/api/file/3/files/delete_folder_v3devicedevice.deleteFolderV3
POST/api/file/3/files/move_v3devicedevice.moveV3
POST/api/file/3/files/copy_v3devicedevice.copyV3
POST/api/file/2/files/create_folder_v2devicedevice.createFolderV2
GET/oss/get/:idpublicdevice.ossGetstreams
POST/api/file/3/files/upload/applydevicedevice.uploadApply
POST/oss/put/:innerNamedevicedevice.ossPutstreams
POST/api/file/2/files/upload/finishdevicedevice.uploadFinish
GET/socket.io/publicdevice.socketIostreams; held stream
POST/api/file/schedule/group/alldevicedevice.todoGroupAll
POST/api/file/schedule/groupdevicedevice.todoGroupInsert
PUT/api/file/schedule/groupdevicedevice.todoGroupUpdate
DELETE/api/file/schedule/group/:iddevicedevice.todoGroupDelete
POST/api/file/schedule/task/alldevicedevice.todoTaskAll
POST/api/file/schedule/taskdevicedevice.todoTaskInsert
PUT/api/file/schedule/taskdevicedevice.todoTaskUpdate
PUT/api/file/schedule/task/listdevicedevice.todoTaskUpdateList
DELETE/api/file/schedule/task/:iddevicedevice.todoTaskDelete

Control plane / browser#

MethodPathWhoHandlerNotes
GET/api/controlplane/server-infopubliccontrolplane.serverInfo
POST/api/controlplane/equipment/unlinkcontrolplanecontrolplane.unlink
GET/api/controlplane/treecontrolplanecontrolplane.tree
GET/api/controlplane/usagecontrolplanecontrolplane.usageread-only

The account screen: managing yourself#

MethodPathWhoHandlerNotes
GET/api/controlplane/accountcontrolplanecontrolplane.account
GET/api/controlplane/account/storagecontrolplanecontrolplane.accountStorageread-only
POST/api/controlplane/account/devices/unlinkcontrolplanecontrolplane.unlinkMyDevice
POST/api/controlplane/account/sign-out-otherscontrolplanecontrolplane.signOutOthers
PUT/api/controlplane/account/versionscontrolplanecontrolplane.setVersions
GET/api/controlplane/file/metadata/:idcontrolplanecontrolplane.note

The client-side search index#

MethodPathWhoHandlerNotes
GET/api/controlplane/search-index/manifestcontrolplanecontrolplane.searchIndexManifestread-only
GET/api/controlplane/search-index/coveragecontrolplanecontrolplane.searchCoverageread-only
GET/api/controlplane/search-index/streamcontrolplanecontrolplane.searchIndexStreamstreams
GET/api/controlplane/text/:md5controlplanecontrolplane.documentTextstreams

History of a file#

MethodPathWhoHandlerNotes
GET/api/controlplane/note/:id/historycontrolplanecontrolplane.history
GET/api/controlplane/note/:id/history/:md5/metacontrolplanecontrolplane.historyMeta
GET/api/controlplane/note/:id/history/:md5/page/:ncontrolplanecontrolplane.historyPagestreams
GET/api/controlplane/note/:id/history/:md5/page/:n/textcontrolplanecontrolplane.historyPageText
GET/api/controlplane/note/:id/history/:md5/rawcontrolplanecontrolplane.historyRawstreams
POST/api/controlplane/note/:id/history/:md5/restorecontrolplanecontrolplane.historyRestore
GET/note/:id/page/:ncontrolplanecontrolplane.pagestreams
GET/note/:id/template/:hashcontrolplanecontrolplane.templatestreams
GET/file/:idcontrolplanecontrolplane.filestreams
GET/thumbnail/:hashcontrolplanecontrolplane.thumbnailstreams
GET/note/:id/page/:n/textcontrolplanecontrolplane.pageText
GET/note/:id/page/:n/linkscontrolplanecontrolplane.pageLinks
GET/api/controlplane/eventscontrolplanecontrolplane.eventsstreams; held stream

Recycle bin#

MethodPathWhoHandlerNotes
GET/api/controlplane/bincontrolplanecontrolplane.bin
GET/api/controlplane/bin/file/metadata/:idcontrolplanecontrolplane.binNote
GET/api/controlplane/bin/note/:id/page/:ncontrolplanecontrolplane.binPagestreams
GET/api/controlplane/bin/note/:id/page/:n/textcontrolplanecontrolplane.binPageText
GET/api/controlplane/bin/note/:id/historycontrolplanecontrolplane.binHistory
GET/api/controlplane/bin/note/:id/history/:md5/page/:ncontrolplanecontrolplane.binHistoryPagestreams
GET/api/controlplane/bin/note/:id/history/:md5/page/:n/textcontrolplanecontrolplane.binHistoryPageText
GET/api/controlplane/bin/note/:id/history/:md5/rawcontrolplanecontrolplane.binHistoryRawstreams
GET/api/controlplane/bin/file/:idcontrolplanecontrolplane.binFilestreams
POST/api/controlplane/bin/:id/restorecontrolplanecontrolplane.restore
DELETE/api/controlplane/bin/:idcontrolplanecontrolplane.purge
DELETE/api/controlplane/bincontrolplanecontrolplane.emptyBin
DELETE/api/controlplane/entry/:idcontrolplanecontrolplane.trash
POST/api/controlplane/entry/:id/renamecontrolplanecontrolplane.rename
POST/api/controlplane/folder/:id/uploadcontrolplanecontrolplane.uploadstreams

Admin: re-authentication#

MethodPathWhoHandlerNotes
POST/api/admin/elevatecontrolplaneadmin.elevate5 per 300 s by user
POST/api/admin/lockcontrolplaneadmin.lock

Admin: household user management#

MethodPathWhoHandlerNotes
POST/api/admin/userscontrolplaneadmin.createUserelevated admin
GET/api/admin/userscontrolplaneadmin.listUserselevated admin
DELETE/api/admin/users/:idcontrolplaneadmin.deleteUserelevated admin
POST/api/admin/users/:id/resetcontrolplaneadmin.resetPasswordelevated admin

Admin: one person’s devices and quota#

MethodPathWhoHandlerNotes
GET/api/admin/users/:id/devicescontrolplaneadmin.listDeviceselevated admin
POST/api/admin/users/:id/devices/unlinkcontrolplaneadmin.unlinkDeviceelevated admin
GET/api/admin/users/:id/quotacontrolplaneadmin.getQuotaelevated admin
PUT/api/admin/users/:id/quotacontrolplaneadmin.setQuotaelevated admin

Admin: server-wide settings and health#

MethodPathWhoHandlerNotes
GET/api/admin/settings/retentioncontrolplaneadmin.getRetentionelevated admin
PUT/api/admin/settings/retentioncontrolplaneadmin.setRetentionelevated admin
GET/api/admin/healthcontrolplaneadmin.healthelevated admin

Backups: what inkhold backup last did (docs/content/contributor/storage.md (Backups))#

MethodPathWhoHandlerNotes
GET/api/controlplane/todocontrolplanetodoweb.getread-only
POST/api/controlplane/todo/listscontrolplanetodoweb.createList
PUT/api/controlplane/todo/lists/:idcontrolplanetodoweb.renameList
DELETE/api/controlplane/todo/lists/:idcontrolplanetodoweb.deleteList
POST/api/controlplane/todo/taskscontrolplanetodoweb.createTask
PUT/api/controlplane/todo/tasks/:idcontrolplanetodoweb.updateTask
DELETE/api/controlplane/todo/tasks/:idcontrolplanetodoweb.deleteTask
PUT/api/controlplane/todo/ordercontrolplanetodoweb.reorder
GET/api/backup-noticecontrolplanebackups.noticeread-only
GET/api/admin/backupscontrolplanebackups.listelevated admin
PUT/api/admin/backups/dismissedcontrolplanebackups.setDismissedelevated admin
POST/api/admin/backups/forgetcontrolplanebackups.forgetelevated admin