Skip to content

Latest commit

 

History

History
188 lines (139 loc) · 3.57 KB

language-server-http-endpoints.md

File metadata and controls

188 lines (139 loc) · 3.57 KB
layout title category tags order
developer-doc
Language Server HTTP Endpoints
language-server
language-server
protocol
specification
6

HTTP Endpoints

Language server exposes a number of HTTP endpoints on the same socket as the JSONRPC protocol.

/_health

HTTP endpoint that provides basic health checking capabilities.

GET | HEAD

Returns 200 OK when the server is started and 500 Internal Server Error otherwise.

Request

> GET /_health HTTP/1.1
> Host: localhost:63597
> User-Agent: curl/7.77.0
> Accept: */*

Response

< HTTP/1.1 200 OK
< Server: akka-http/10.2.0-RC1
< Date: Fri, 09 Jul 2021 15:16:16 GMT
< Content-Type: text/plain; charset=UTF-8
< Content-Length: 2
<
OK

/_health/readiness

The server readiness probe.

GET | HEAD

Returns 200 OK when the server is initialized and 500 Internal Server Error otherwise.

Request

> GET /_health/readiness HTTP/1.1
> Host: localhost:63597
> User-Agent: curl/7.77.0
> Accept: */*

Response

< HTTP/1.1 200 OK
< Server: akka-http/10.2.0-RC1
< Date: Fri, 09 Jul 2021 15:30:53 GMT
< Content-Type: text/plain; charset=UTF-8
< Content-Length: 2
<
OK

/_health/liveness

The server liveness probe.

GET | HEAD

Checks if all the server subsystems are functioning and returns 200 OK or 500 Internal Server Error otherwise.

Request

> GET /_health/liveness HTTP/1.1
> Host: localhost:60339
> User-Agent: curl/7.77.0
> Accept: */*

Response

< HTTP/1.1 200 OK
< Server: akka-http/10.2.0-RC1
< Date: Fri, 09 Jul 2021 15:35:43 GMT
< Content-Type: text/plain; charset=UTF-8
< Content-Length: 2
<
OK

/_idle

The server idleness probe.

GET

Return the amount of time the language server is idle.

Request

> GET /_idle HTTP/1.1
> Host: localhost:60339
> User-Agent: curl/7.77.0
> Accept: */*

Response

< HTTP/1.1 200 OK
< Server: akka-http/10.2.0-RC1
< Date: Fri, 09 Jul 2021 15:44:51 GMT
< Content-Type: application/json
< Content-Length: 21
<
{"idle_time_sec":58}

/_idle/reset

The reset request of the server idleness probe.

POST

Reset the idle time of the language server.

Request

> POST /_idle/reset HTTP/1.1
> Host: localhost:64996
> User-Agent: curl/7.77.0
> Accept: */*

Response

< HTTP/1.1 200 OK
< Server: akka-http/10.2.0-RC1
< Date: Mon, 09 Aug 2021 15:37:27 GMT
< Content-Type: text/plain; charset=UTF-8
< Content-Length: 2
<
OK

HTTPS endpoints

Language server can expose HTTPS endpoints when configured appropriately:

  1. Project-manager must be told that project's language server should be started with https/wss support
    • NETWORK_ENABLE_HTTPS=true
  2. User should provide appropriate secure configuration. Currently supported are PKCS12 bundle with password and certificate with private key. Depending on the configuration present, either choice will be sufficient.

If a project-manager is started with ENSO_HTTPS_PUBLIC_CERTIFICATE and ENSO_HTTPS_PRIVATE_KEY env variables, SSL context will be created from a certificate and a private key, respectively. If a project-manager is started with ENSO_HTTPS_PKCS12_PATH and ENSO_HTTPS_PKCS12_PASSWORD env variables, SSL context will be created from a file in PKCS12 format and a password to it, respectively.