mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-30 01:36:24 +01:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			copilot/fi
			...
			feat/add-w
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 79dda887a6 | 
							
								
								
									
										487
									
								
								apps/server/src/assets/websocket-asyncapi.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										487
									
								
								apps/server/src/assets/websocket-asyncapi.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,487 @@ | ||||
| asyncapi: 2.6.0 | ||||
| info: | ||||
|   title: Trilium Notes WebSocket API | ||||
|   version: 0.98.0 | ||||
|   description: | | ||||
|     Real-time WebSocket API for Trilium Notes client-server communication. | ||||
|      | ||||
|     This API handles real-time updates, synchronization, task progress, and streaming responses. | ||||
|      | ||||
|     ## Authentication | ||||
|      | ||||
|     WebSocket connections require the same session authentication as the HTTP API. | ||||
|     The session is validated during the initial WebSocket handshake. | ||||
|      | ||||
|   license: | ||||
|     name: GNU Affero General Public License v3.0 | ||||
|     url: https://www.gnu.org/licenses/agpl-3.0.html | ||||
|  | ||||
| servers: | ||||
|   development: | ||||
|     url: ws://localhost:8080 | ||||
|     protocol: ws | ||||
|     description: Local development server | ||||
|      | ||||
|   production: | ||||
|     url: wss://your-trilium-server.com | ||||
|     protocol: wss | ||||
|     description: Production server (secure WebSocket) | ||||
|  | ||||
| channels: | ||||
|   /: | ||||
|     description: Main WebSocket connection endpoint for real-time bidirectional communication | ||||
|      | ||||
|     subscribe: | ||||
|       summary: Messages from server to client | ||||
|       message: | ||||
|         oneOf: | ||||
|           - $ref: '#/components/messages/Ping' | ||||
|           - $ref: '#/components/messages/FrontendUpdate' | ||||
|           - $ref: '#/components/messages/SyncPullInProgress' | ||||
|           - $ref: '#/components/messages/SyncPushInProgress' | ||||
|           - $ref: '#/components/messages/SyncFinished' | ||||
|           - $ref: '#/components/messages/SyncFailed' | ||||
|           - $ref: '#/components/messages/ReloadFrontend' | ||||
|           - $ref: '#/components/messages/ConsistencyChecksFailed' | ||||
|           - $ref: '#/components/messages/TaskProgressCount' | ||||
|           - $ref: '#/components/messages/TaskError' | ||||
|           - $ref: '#/components/messages/TaskSucceeded' | ||||
|           - $ref: '#/components/messages/ProtectedSessionLogin' | ||||
|           - $ref: '#/components/messages/ProtectedSessionLogout' | ||||
|           - $ref: '#/components/messages/OpenNote' | ||||
|           - $ref: '#/components/messages/ExecuteScript' | ||||
|           - $ref: '#/components/messages/ApiLogMessages' | ||||
|           - $ref: '#/components/messages/Toast' | ||||
|           - $ref: '#/components/messages/LlmStream' | ||||
|            | ||||
|     publish: | ||||
|       summary: Messages from client to server | ||||
|       message: | ||||
|         oneOf: | ||||
|           - $ref: '#/components/messages/ClientPing' | ||||
|           - $ref: '#/components/messages/LogError' | ||||
|           - $ref: '#/components/messages/LogInfo' | ||||
|  | ||||
| components: | ||||
|   messages: | ||||
|     # Client to Server Messages | ||||
|     ClientPing: | ||||
|       name: ping | ||||
|       title: Client Ping | ||||
|       summary: Keep-alive ping from client | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: ping | ||||
|              | ||||
|     LogError: | ||||
|       name: log-error | ||||
|       title: Log Error | ||||
|       summary: Report JavaScript error to server | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - error | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: log-error | ||||
|           error: | ||||
|             type: string | ||||
|             description: Error message | ||||
|           stack: | ||||
|             type: string | ||||
|             description: Stack trace | ||||
|              | ||||
|     LogInfo: | ||||
|       name: log-info | ||||
|       title: Log Info | ||||
|       summary: Send info log to server | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - info | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: log-info | ||||
|           info: | ||||
|             type: string | ||||
|             description: Information message | ||||
|              | ||||
|     # Server to Client Messages | ||||
|     Ping: | ||||
|       name: ping | ||||
|       title: Server Ping | ||||
|       summary: Keep-alive ping from server | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: ping | ||||
|              | ||||
|     FrontendUpdate: | ||||
|       name: frontend-update | ||||
|       title: Frontend Update | ||||
|       summary: Notify frontend of entity changes | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - data | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: frontend-update | ||||
|           data: | ||||
|             type: object | ||||
|             properties: | ||||
|               entityChanges: | ||||
|                 type: array | ||||
|                 items: | ||||
|                   type: object | ||||
|                   properties: | ||||
|                     entityName: | ||||
|                       type: string | ||||
|                       enum: [notes, branches, attributes, attachments] | ||||
|                     entity: | ||||
|                       type: object | ||||
|                       description: The changed entity data | ||||
|                        | ||||
|     SyncPullInProgress: | ||||
|       name: sync-pull-in-progress | ||||
|       title: Sync Pull In Progress | ||||
|       summary: Sync pull operation started | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: sync-pull-in-progress | ||||
|           lastSyncedPush: | ||||
|             type: integer | ||||
|             nullable: true | ||||
|              | ||||
|     SyncPushInProgress: | ||||
|       name: sync-push-in-progress | ||||
|       title: Sync Push In Progress | ||||
|       summary: Sync push operation started | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: sync-push-in-progress | ||||
|           lastSyncedPush: | ||||
|             type: integer | ||||
|             nullable: true | ||||
|              | ||||
|     SyncFinished: | ||||
|       name: sync-finished | ||||
|       title: Sync Finished | ||||
|       summary: Sync operation completed successfully | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: sync-finished | ||||
|           lastSyncedPush: | ||||
|             type: integer | ||||
|             nullable: true | ||||
|              | ||||
|     SyncFailed: | ||||
|       name: sync-failed | ||||
|       title: Sync Failed | ||||
|       summary: Sync operation failed | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: sync-failed | ||||
|           lastSyncedPush: | ||||
|             type: integer | ||||
|             nullable: true | ||||
|              | ||||
|     ReloadFrontend: | ||||
|       name: reload-frontend | ||||
|       title: Reload Frontend | ||||
|       summary: Request frontend to reload | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: reload-frontend | ||||
|           reason: | ||||
|             type: string | ||||
|             description: Reason for reload | ||||
|              | ||||
|     ConsistencyChecksFailed: | ||||
|       name: consistency-checks-failed | ||||
|       title: Consistency Checks Failed | ||||
|       summary: Database consistency check failed | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: consistency-checks-failed | ||||
|              | ||||
|     TaskProgressCount: | ||||
|       name: taskProgressCount | ||||
|       title: Task Progress Count | ||||
|       summary: Update task progress | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - taskId | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: taskProgressCount | ||||
|           taskId: | ||||
|             type: string | ||||
|           taskType: | ||||
|             type: string | ||||
|             nullable: true | ||||
|           progressCount: | ||||
|             type: integer | ||||
|              | ||||
|     TaskError: | ||||
|       name: taskError | ||||
|       title: Task Error | ||||
|       summary: Task encountered an error | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - taskId | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: taskError | ||||
|           taskId: | ||||
|             type: string | ||||
|           taskType: | ||||
|             type: string | ||||
|             nullable: true | ||||
|           message: | ||||
|             type: string | ||||
|              | ||||
|     TaskSucceeded: | ||||
|       name: taskSucceeded | ||||
|       title: Task Succeeded | ||||
|       summary: Task completed successfully | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - taskId | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: taskSucceeded | ||||
|           taskId: | ||||
|             type: string | ||||
|           taskType: | ||||
|             type: string | ||||
|             nullable: true | ||||
|           result: | ||||
|             type: object | ||||
|              | ||||
|     ProtectedSessionLogin: | ||||
|       name: protectedSessionLogin | ||||
|       title: Protected Session Login | ||||
|       summary: Protected session was entered | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: protectedSessionLogin | ||||
|              | ||||
|     ProtectedSessionLogout: | ||||
|       name: protectedSessionLogout | ||||
|       title: Protected Session Logout | ||||
|       summary: Protected session was exited | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: protectedSessionLogout | ||||
|              | ||||
|     OpenNote: | ||||
|       name: openNote | ||||
|       title: Open Note | ||||
|       summary: Request to open a note | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - noteId | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: openNote | ||||
|           noteId: | ||||
|             type: string | ||||
|              | ||||
|     ExecuteScript: | ||||
|       name: execute-script | ||||
|       title: Execute Script | ||||
|       summary: Execute a script | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - script | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: execute-script | ||||
|           script: | ||||
|             type: string | ||||
|           params: | ||||
|             type: array | ||||
|             items: | ||||
|               type: any | ||||
|           startNoteId: | ||||
|             type: string | ||||
|           currentNoteId: | ||||
|             type: string | ||||
|           originEntityName: | ||||
|             type: string | ||||
|             const: notes | ||||
|           originEntityId: | ||||
|             type: string | ||||
|             nullable: true | ||||
|              | ||||
|     ApiLogMessages: | ||||
|       name: api-log-messages | ||||
|       title: API Log Messages | ||||
|       summary: API log messages | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - messages | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: api-log-messages | ||||
|           messages: | ||||
|             type: array | ||||
|             items: | ||||
|               type: string | ||||
|                | ||||
|     Toast: | ||||
|       name: toast | ||||
|       title: Toast Notification | ||||
|       summary: Show toast notification | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - message | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: toast | ||||
|           message: | ||||
|             type: string | ||||
|              | ||||
|     LlmStream: | ||||
|       name: llm-stream | ||||
|       title: LLM Stream | ||||
|       summary: LLM streaming response | ||||
|       contentType: application/json | ||||
|       payload: | ||||
|         type: object | ||||
|         required: | ||||
|           - type | ||||
|           - chatNoteId | ||||
|         properties: | ||||
|           type: | ||||
|             type: string | ||||
|             const: llm-stream | ||||
|           chatNoteId: | ||||
|             type: string | ||||
|           content: | ||||
|             type: string | ||||
|             description: Response text content | ||||
|           thinking: | ||||
|             type: string | ||||
|             description: Internal reasoning/thinking process | ||||
|           toolExecution: | ||||
|             type: object | ||||
|             properties: | ||||
|               action: | ||||
|                 type: string | ||||
|               tool: | ||||
|                 type: string | ||||
|               toolCallId: | ||||
|                 type: string | ||||
|               args: | ||||
|                 type: object | ||||
|               result: | ||||
|                 type: any | ||||
|               error: | ||||
|                 type: string | ||||
|           done: | ||||
|             type: boolean | ||||
|             description: Whether streaming is complete | ||||
|           error: | ||||
|             type: string | ||||
|             nullable: true | ||||
|           raw: | ||||
|             type: any | ||||
|             description: Raw response data | ||||
		Reference in New Issue
	
	Block a user