feat(docs): add additional api routes

This commit is contained in:
perf3ct
2025-08-20 17:30:26 +00:00
parent d358924324
commit 05c73011f5

View File

@@ -218,6 +218,49 @@ paths:
'204':
description: Session refreshed
# OAuth endpoints
/api/oauth/status:
get:
tags: [Authentication]
summary: Get OAuth status
operationId: getOAuthStatus
responses:
'200':
description: OAuth status
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
configured:
type: boolean
providers:
type: array
items:
type: string
/api/oauth/validate:
get:
tags: [Authentication]
summary: Validate OAuth configuration
operationId: validateOAuth
responses:
'200':
description: OAuth validation result
content:
application/json:
schema:
type: object
properties:
valid:
type: boolean
errors:
type: array
items:
type: string
# App Info
/api/app-info:
get:
@@ -302,6 +345,29 @@ paths:
responses:
'200':
description: Sync setup successful
/api/setup/sync-seed:
get:
tags: [Configuration, Sync]
summary: Get sync seed for setup
operationId: getSyncSeed
security: []
responses:
'200':
description: Sync seed information
content:
application/json:
schema:
type: object
properties:
syncVersion:
type: integer
schemaVersion:
type: integer
documentSecret:
type: string
maxSyncId:
type: integer
# Note operations
/api/notes/{noteId}:
@@ -660,7 +726,7 @@ paths:
type: string
format: binary
/api/notes/{noteId}/download:
/api/notes/download/{noteId}:
get:
tags: [Notes]
summary: Download file note
@@ -681,13 +747,38 @@ paths:
type: string
format: binary
/api/notes/{noteId}/open-partial:
/api/notes/{noteId}/download:
get:
tags: [Notes]
summary: Stream file with partial content support
operationId: openPartialFileNote
summary: Download file note (alternative path)
operationId: downloadFileNoteAlt
parameters:
- $ref: '#/components/parameters/noteId'
responses:
'200':
description: File content
headers:
Content-Disposition:
schema:
type: string
example: attachment; filename="document.pdf"
content:
application/octet-stream:
schema:
type: string
format: binary
/api/attachments/{attachmentId}/open-partial:
get:
tags: [Attachments]
summary: Stream file with partial content support
operationId: openPartialFileAttachment
parameters:
- name: attachmentId
in: path
required: true
schema:
type: string
- name: Range
in: header
schema:
@@ -1477,7 +1568,7 @@ paths:
type: string
format: binary
/api/attachments/{attachmentId}/download:
/api/attachments/download/{attachmentId}:
get:
tags: [Attachments]
summary: Download attachment
@@ -1501,6 +1592,128 @@ paths:
schema:
type: string
format: binary
/api/attachments/{attachmentId}/download:
get:
tags: [Attachments]
summary: Download attachment (alternative path)
operationId: downloadAttachmentAlt
parameters:
- name: attachmentId
in: path
required: true
schema:
type: string
responses:
'200':
description: Attachment content
headers:
Content-Disposition:
schema:
type: string
example: attachment; filename="document.pdf"
content:
application/octet-stream:
schema:
type: string
format: binary
/api/attachments/{attachmentId}/all:
get:
tags: [Attachments]
summary: Get all attachment information
operationId: getAllAttachmentInfo
parameters:
- name: attachmentId
in: path
required: true
schema:
type: string
responses:
'200':
description: Complete attachment information
content:
application/json:
schema:
type: object
properties:
attachmentId:
type: string
title:
type: string
mime:
type: string
isProtected:
type: boolean
position:
type: integer
contentLength:
type: integer
ownerId:
type: string
dateCreated:
type: string
format: date-time
dateModified:
type: string
format: date-time
/api/attachments/{attachmentId}/save-to-tmp-dir:
post:
tags: [Attachments]
summary: Save attachment to temporary directory
operationId: saveAttachmentToTmpDir
parameters:
- name: attachmentId
in: path
required: true
schema:
type: string
responses:
'200':
description: Attachment saved to temporary directory
content:
application/json:
schema:
type: object
properties:
tmpPath:
type: string
description: Path to temporary file
success:
type: boolean
/api/attachments/{attachmentId}/upload-modified-file:
post:
tags: [Attachments]
summary: Upload modified attachment file
operationId: uploadModifiedAttachmentFile
parameters:
- name: attachmentId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
upload:
type: string
format: binary
responses:
'200':
description: Modified file uploaded
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
# Revisions
/api/notes/{noteId}/revisions:
@@ -2970,6 +3183,159 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Note'
/api/special-notes/notes-for-month/{month}:
get:
tags: [Special Notes]
summary: Get notes for specific month
operationId: getNotesForMonth
parameters:
- name: month
in: path
required: true
schema:
type: string
example: "2024-03"
responses:
'200':
description: Notes for the month
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Note'
/api/special-notes/quarters/{quarter}:
get:
tags: [Special Notes]
summary: Get quarter note
operationId: getQuarter
parameters:
- name: quarter
in: path
required: true
schema:
type: string
example: "2024-Q1"
responses:
'200':
description: Quarter note
content:
application/json:
schema:
$ref: '#/components/schemas/Note'
/api/special-notes/week-first-day/{date}:
get:
tags: [Special Notes]
summary: Get first day of week for date
operationId: getWeekFirstDay
parameters:
- name: date
in: path
required: true
schema:
type: string
format: date
example: "2024-03-15"
responses:
'200':
description: First day of week
content:
application/json:
schema:
type: object
properties:
date:
type: string
format: date
/api/special-notes/launchers/{noteId}/reset:
post:
tags: [Special Notes]
summary: Reset launcher note
operationId: resetLauncher
parameters:
- $ref: '#/components/parameters/noteId'
responses:
'200':
description: Launcher reset
content:
application/json:
schema:
$ref: '#/components/schemas/Note'
/api/special-notes/save-search-note:
post:
tags: [Special Notes]
summary: Save search note
operationId: saveSearchNote
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
title:
type: string
responses:
'201':
description: Search note saved
content:
application/json:
schema:
$ref: '#/components/schemas/Note'
/api/special-notes/save-sql-console:
post:
tags: [Special Notes]
summary: Save SQL console note
operationId: saveSqlConsole
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
sql:
type: string
title:
type: string
responses:
'201':
description: SQL console saved
content:
application/json:
schema:
$ref: '#/components/schemas/Note'
/api/special-notes/api-script-launcher:
put:
tags: [Special Notes]
summary: Update API script launcher
operationId: updateApiScriptLauncher
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
code:
type: string
description: Script code
responses:
'200':
description: API script launcher updated
content:
application/json:
schema:
$ref: '#/components/schemas/Note'
# Maps
/api/note-map/{noteId}/tree:
@@ -3024,6 +3390,25 @@ paths:
title:
type: string
/api/note-map/{noteId}/backlink-count:
get:
tags: [Visualization]
summary: Get backlink count for note
operationId: getBacklinkCount
parameters:
- $ref: '#/components/parameters/noteId'
responses:
'200':
description: Backlink count
content:
application/json:
schema:
type: object
properties:
count:
type: integer
description: Number of backlinks to this note
/api/relation-map:
post:
tags: [Visualization]
@@ -3119,6 +3504,27 @@ paths:
schema:
$ref: '#/components/schemas/Note'
/api/clipper/open/{noteId}:
post:
tags: [External]
summary: Open note in clipper
operationId: openNoteInClipper
parameters:
- $ref: '#/components/parameters/noteId'
responses:
'200':
description: Note opened in clipper
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
url:
type: string
description: URL to open in clipper
/api/sender/login:
post:
tags: [External]
@@ -3247,13 +3653,13 @@ paths:
items:
$ref: '#/components/schemas/ChatSession'
/api/llm/chat/{chatNoteId}:
/api/llm/chat/{sessionId}:
get:
tags: [LLM]
summary: Get specific chat session
operationId: getChatSession
parameters:
- name: chatNoteId
- name: sessionId
in: path
required: true
schema:
@@ -3271,7 +3677,7 @@ paths:
summary: Update chat session
operationId: updateChatSession
parameters:
- name: chatNoteId
- name: sessionId
in: path
required: true
schema:
@@ -3305,6 +3711,7 @@ paths:
schema:
$ref: '#/components/schemas/ChatSession'
/api/llm/chat/{chatNoteId}:
delete:
tags: [LLM]
summary: Delete chat session
@@ -3325,7 +3732,7 @@ paths:
summary: Send message to LLM
operationId: sendChatMessage
parameters:
- name: chatNoteId
- name: sessionId
in: path
required: true
schema:
@@ -3383,7 +3790,7 @@ paths:
summary: Stream message to LLM
operationId: streamChatMessage
parameters:
- name: chatNoteId
- name: sessionId
in: path
required: true
schema:
@@ -3535,6 +3942,132 @@ paths:
enabled:
type: boolean
/api/totp/get:
get:
tags: [Security]
summary: Get TOTP configuration
operationId: getTotpConfig
responses:
'200':
description: TOTP configuration
content:
application/json:
schema:
type: object
properties:
secret:
type: string
qrCode:
type: string
backupCodes:
type: array
items:
type: string
/api/totp_recovery/enabled:
get:
tags: [Security]
summary: Check if TOTP recovery is enabled
operationId: isTotpRecoveryEnabled
responses:
'200':
description: TOTP recovery status
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
/api/totp_recovery/generate:
get:
tags: [Security]
summary: Generate TOTP recovery codes
operationId: generateTotpRecoveryCodes
responses:
'200':
description: Generated recovery codes
content:
application/json:
schema:
type: object
properties:
codes:
type: array
items:
type: string
/api/totp_recovery/used:
get:
tags: [Security]
summary: Get used TOTP recovery codes
operationId: getUsedTotpRecoveryCodes
responses:
'200':
description: Used recovery codes
content:
application/json:
schema:
type: object
properties:
usedCodes:
type: array
items:
type: string
/api/totp_recovery/set:
post:
tags: [Security]
summary: Set TOTP recovery codes
operationId: setTotpRecoveryCodes
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
codes:
type: array
items:
type: string
responses:
'200':
description: Recovery codes set
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
/api/totp_recovery/verify:
post:
tags: [Security]
summary: Verify TOTP recovery code
operationId: verifyTotpRecoveryCode
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
code:
type: string
responses:
'200':
description: Verification result
content:
application/json:
schema:
type: object
properties:
valid:
type: boolean
# ETAPI tokens
/api/etapi-tokens:
get:
@@ -3674,6 +4207,28 @@ paths:
description:
type: string
/api/keyboard-shortcuts-for-notes:
get:
tags: [Utilities]
summary: Get keyboard shortcuts for notes
operationId: getKeyboardShortcutsForNotes
responses:
'200':
description: Keyboard shortcuts for notes
content:
application/json:
schema:
type: array
items:
type: object
properties:
noteId:
type: string
shortcut:
type: string
title:
type: string
/api/fonts:
get:
tags: [Utilities]