mirror of
https://github.com/tlsnotary/notary-server.git
synced 2026-01-07 19:53:55 -05:00
* feat: accept sessionId in url Required by the browser to pass session id with Websocket API * feat: server accept session id entirely through url params * Update openapi.yaml and README for url param sessionId * Update src/domain/notary.rs Co-authored-by: Christopher Chong <t.kleinchong@gmail.com> * Update tests/integration_test.rs Co-authored-by: Christopher Chong <t.kleinchong@gmail.com> --------- Co-authored-by: Christopher Chong <t.kleinchong@gmail.com>
124 lines
3.4 KiB
YAML
124 lines
3.4 KiB
YAML
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: query
|
|
name: sessionId
|
|
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"
|