Skip to content

https://

HTTPS client — TLS-wrapped variant of http://. Same Endpoint type, same URI surface, same body and header semantics; the only difference is the scheme tells the component to build URLs with https://, so the underlying net/http.Client performs a TLS handshake against the standard system trust store.

URI shape

https://host:port/path[?method=GET&timeout=30s]

port is optional (defaults to whatever the target serves — 443 in practice; the component just hands the URL to net/http).

Parameters

Identical to http://:

Param Type Default Side Description
host:port/path path — producer Target URL (without the scheme).
method string GET producer HTTP method. Overridable via HelixHttpMethod header.
timeout duration 30s producer Per-request timeout.

Body shape

Same as http://. The In body is sent as the request body (bytes / string / Sprintf fallback / streaming); the response replaces it.

Headers

Identical to http://. Notable headers:

Header Direction Description
HelixHttpMethod request Override the URI's method.
HelixHttpPath request Appended to the URI's path (sanitised).
HelixHttpQuery request Raw query string appended to the URL.
HelixHttpResponseCode response HTTP status code (int).
Content-Type response Response Content-Type.

TLS configuration

https:// uses the default net/http.Client with system-trust verification. For control beyond that, drop a *http.Client with a custom Transport.TLSClientConfig into the component at startup, or use the streaming producer (NewStreamingHTTPProducer) which calls SetClient.

For server-side TLS (terminating HTTPS), see http-server://, which exposes tlsCert / tlsKey / tlsCA URI parameters.

Error semantics

Identical to http://:

  • TLS handshake failure → HTTP:CONNECTIVITY.
  • 4xx/5xx → typed helixerrors.HTTPError(status, preview).
  • 2xx/3xx → no error.

Examples

A TLS GET:

- to: https://api.example.com/v1/health

POST JSON with override headers:

- setHeader:
    name: Content-Type
    constant: application/json
- to: https://api.example.com/v1/orders?method=POST&timeout=10s

Inside do-catch for typed error handling:

- doTry:
    steps:
      - to: https://api.example.com/v1/orders/{id}
  doCatch:
    - errors: ["HTTP:NOT_FOUND"]
      steps:
        - to: log://order-not-found?level=warn

Behavior notes

Inherits every behavior note from http://: no client Timeout, HelixHttpPath sanitisation, 100 MB response cap, Helix* headers stripped before send.

Source

  • pkg/component/http/http.go — NewHTTPS() returns a Component with scheme = "https". The Endpoint, Producer, request logic, and parameters are the same as http://.
  • pkg/component/http/streaming.go — streaming variant.

See also