mirror of
https://github.com/tlsnotary/notary-server.git
synced 2026-01-09 22:47:55 -05:00
Implement websocket and http apis. (#6)
* Add logic to promote to http and then downgrade to tcp for notarization. * Fix client hang issueno * Change channel message type. * Fix response parsing from notary. * Fix websocket implementation and use upgrade protocol for raw tcp. * Modify test to mimick browser extension for websocket test. * Refactor tcp client handling. * Add global store for persistent data. * Finish websocket handler and test. * Add comments. * Add more comments and documentation. * Add openapi.yaml. * Modify README. * Add architecture explanation. * Modify README. * Fix PR based on comments. * Combine tcp and websocket extractors. * Refactor and fix documentations.
This commit is contained in:
123
openapi.yaml
Normal file
123
openapi.yaml
Normal file
@@ -0,0 +1,123 @@
|
||||
openapi: 3.0.0
|
||||
|
||||
info:
|
||||
title: Notary Server
|
||||
description: Notary server written in Rust to provide notarization service.
|
||||
version: 0.1.0
|
||||
|
||||
tags:
|
||||
- name: Notarization
|
||||
|
||||
paths:
|
||||
/session:
|
||||
post:
|
||||
tags:
|
||||
- Notarization
|
||||
description: Initialize and configure notarization for both TCP and WebSocket clients
|
||||
parameters:
|
||||
- in: header
|
||||
name: Content-Type
|
||||
description: The value must be application/json
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- "application/json"
|
||||
required: true
|
||||
requestBody:
|
||||
description: Notarization session request to server
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/NotarizationSessionRequest"
|
||||
responses:
|
||||
"200":
|
||||
description: Notarization session response from server
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/NotarizationSessionResponse"
|
||||
"400":
|
||||
description: Configuration parameters or headers provided by prover are invalid
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
example: "Invalid request from prover: Failed to deserialize the JSON body into the target type"
|
||||
"500":
|
||||
description: There was some internal error when processing
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
example: "Something is wrong"
|
||||
/notarize:
|
||||
get:
|
||||
tags:
|
||||
- Notarization
|
||||
description: Start notarization for TCP client
|
||||
parameters:
|
||||
- in: header
|
||||
name: Connection
|
||||
description: The value should be 'Upgrade'
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- "Upgrade"
|
||||
required: true
|
||||
- in: header
|
||||
name: Upgrade
|
||||
description: The value should be 'TCP'
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- "TCP"
|
||||
required: true
|
||||
- in: header
|
||||
name: X-Session-Id
|
||||
description: Unique ID returned from server upon calling POST /session
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
responses:
|
||||
"101":
|
||||
description: Switching protocol response
|
||||
"400":
|
||||
description: Headers provided by prover are invalid
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
example: "Invalid request from prover: Upgrade header is not set for client"
|
||||
"500":
|
||||
description: There was some internal error when processing
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
example: "Something is wrong"
|
||||
|
||||
components:
|
||||
schemas:
|
||||
NotarizationSessionRequest:
|
||||
type: object
|
||||
properties:
|
||||
clientType:
|
||||
description: Types of client that the prover is using
|
||||
type: string
|
||||
enum:
|
||||
- "Tcp"
|
||||
- "Websocket"
|
||||
maxTranscriptSize:
|
||||
description: Maximum transcript size in bytes
|
||||
type: integer
|
||||
required:
|
||||
- "clientType"
|
||||
- "maxTranscriptSize"
|
||||
NotarizationSessionResponse:
|
||||
type: object
|
||||
properties:
|
||||
sessionId:
|
||||
type: string
|
||||
required:
|
||||
- "sessionId"
|
||||
Reference in New Issue
Block a user