ReferenceDriverHTTPConnect Server

Connect an HTTP Server

Connect to an HTTP server using Synnax.

The Synnax Driver talks to any device or service with an HTTP or HTTPS JSON API: REST endpoints on embedded devices, cloud telemetry APIs, monitoring endpoints, and IoT gateways. Bearer token, basic auth, and API key authentication are supported.

Prerequisites

Before you can connect to an HTTP server, you will need to ensure that you have the following:

  1. A Synnax Core running on your network.
  2. A Synnax Driver running on your network. This Driver must be connected to the Core and able to reach your HTTP server.
  3. The Synnax Console installed on your local machine.
  4. An HTTP server running on your network that is reachable by the Driver.

Supported Operating Systems

Platform Status
Windows ✓ Supported
Linux ✓ Supported
NI Linux Real-Time ✓ Supported
macOS ✓ Supported
Docker ✓ Supported

When running in a Docker container, ensure the container has network access to the HTTP server.

Configuration Parameters Reference

Parameter Type Required Default Description
name string Yes - Human-readable server name for identification in Console
rack string Yes - Synnax Driver (rack) key that will connect to the HTTP server
host string Yes - Host and port of the HTTP server (e.g., 192.168.1.100:8080 or localhost:443)
secure boolean No true Use HTTPS (true) or HTTP (false)
timeout_ms integer No 100 Request timeout in milliseconds
verify_ssl boolean No true Whether to verify SSL/TLS certificates
auth object No none The configuration used to authenticate with the HTTP server
health_check object Yes - The configuration the Driver uses to track the health of the HTTP server

Setting verify_ssl to false should be used when the HTTP server does not have a verified SSL certificate, which is common for internal servers not connected to the public internet.

Authentication Reference

The HTTP driver supports four authentication methods. Authentication is configured at the device level and applied to every request.

None (Default)

No authentication headers are added to requests.

{ "type": "none" }

Bearer Token

Adds an Authorization: Bearer <token> header to every request.

Parameter Type Required Description
token string Yes The bearer token value
{ "type": "bearer", "token": "my-secret-token" }

Basic (Username and Password)

Adds an Authorization: Basic <credentials> header using Base64 encoded username:password.

Parameter Type Required Description
username string Yes Username
password string Yes Password
{ "type": "basic", "username": "admin", "password": "secret" }

API Key

Sends an API key as either a custom header or a query parameter.

Parameter Type Required Default Description
key string Yes - The API key value
send_as string Yes - How to send the key: "header" or "query_param"
header string No - Header name (required when send_as is "header")
parameter string No - Query parameter name (required when send_as is "query_param")
{ "type": "api_key", "send_as": "header", "header": "X-API-Key", "key": "abc123" }
{ "type": "api_key", "send_as": "query_param", "parameter": "api_key", "key": "abc123" }

Health Check Configuration

The driver periodically checks whether the HTTP server is reachable. We recommend choosing a path that sends a very small response body if the server does not have a dedicated /health, /status, or /ping endpoint.

Health Check Parameters

Parameter Type Required Default Description
method string Yes - HTTP method for the health check ("GET" or "POST")
path string No "/health" URL path to request
headers object No - Additional headers to include
query_params object No - Query parameters to include
body string No - Request body (POST only)
response object No - Optional response validation configuration

Response Validation Parameters

When a response object is provided, the driver validates the response body against an expected value:

Parameter Type Required Description
pointer string Yes JSON Pointer into the response body (e.g., /status)
expected_value_type string Yes Type of the expected value: string, number, boolean, null
expected_value JSON Yes The expected value at that pointer

How-To