HTTP
Synopsis
Creates an HTTP server that accepts messages via HTTP POST requests. Supports multiple authentication methods, TLS encryption, and customizable response handling.
Schema
- id: <numeric>
name: <string>
description: <string>
type: http
tags: <string[]>
pipelines: <pipeline[]>
status: <boolean>
properties:
address: <string>
port: <numeric>
url: <string>
protocol: <string>
content_type: <string>
reuse: <boolean>
workers: <numeric>
response:
code: <numeric>
body: <string>
content_type: <string>
tls:
status: <boolean>
cert_name: <string>
key_name: <string>
authentication:
type: <string>
username: <string>
password: <string>
header:
key: <string>
value: <string>
hmac:
type: <string>
header: <string>
key: <string>
prefix: <string>
queue:
interval: <numeric>
Configuration
The following fields are used to define the device:
Device
Field | Required | Default | Description |
---|---|---|---|
id | Y | Unique identifier | |
name | Y | Device name | |
description | N | - | Optional description |
type | Y | Must be http | |
status | N | true | Enable/disable the device |
Connection
Field | Required | Default | Description |
---|---|---|---|
protocol | N | "tcp" | Transport protocol (must be tcp) |
address | N | "0.0.0.0" | Listen address |
port | Y | Listen port | |
url | N | "/" | URL path to listen on |
content_type | N | "application/json" | Expected content type of incoming requests |
Response
Field | Required | Default | Description |
---|---|---|---|
response.code | N | 200 | HTTP response status code |
response.body | N | {"message":"success"} | Response body content |
response.content_type | N | "application/json" | Response content type |
Authentication
Field | Required | Default | Description |
---|---|---|---|
authentication.type | N | "none" | Authentication type (basic , header , or hmac ) |
username | Y | Username for basic auth (required if type is basic ) | |
password | Y | Password for basic auth (required if type is basic ) | |
header.key | Y | Header name for header auth (required if type is header ) | |
header.value | Y | Header value for header auth (required if type is header ) | |
hmac.type | Y | HMAC algorithm (sha1 , sha256 , or sha512 ) | |
hmac.header | Y | Header name for HMAC signature | |
hmac.key | Y | Secret key for HMAC calculation | |
hmac.prefix | N | - | Optional prefix to strip from HMAC header value |
TLS
Field | Required | Default | Description |
---|---|---|---|
tls.status | N | false | Enable TLS encryption |
tls.cert_name | Y | TLS certificate file path (required if TLS enabled) | |
tls.key_name | Y | TLS private key file path (required if TLS enabled) |
note
TLS certificate and key files must be placed in the service root directory.
Advanced Configuration
To enhance performance and achieve better message handling, the following settings are used.
Performance
Field | Required | Default | Description |
---|---|---|---|
reuse | N | true | Enable socket address reuse |
workers | N | <dynamic> | Number of worker processes when reuse is enabled |
Messages
Field | Required | Default | Description |
---|---|---|---|
queue.interval | N | 1 | Queue processing interval in seconds |
Examples
The following are commonly used configuration types.
Basic
The minimum required settings for a basic server are POST endpoint at /logs
, a JSON content type, and a simple success response
Create a simple HTTP server... |
|