SslConfig

View as MarkdownOpen in Claude

SslConfig manages SSL/TLS configuration for serving agents over HTTPS. It reads from explicit options or falls back to environment variables (SWML_SSL_ENABLED, SWML_SSL_CERT_PATH, SWML_SSL_KEY_PATH, SWML_SSL_DOMAIN). See Environment Variables for the full list.

import { SslConfig } from '@signalwire/sdk';
const ssl = new SslConfig({ certPath: './cert.pem', keyPath: './key.pem' });

Constructor

opts
SslOptions

Optional SSL configuration overrides. Any field omitted falls back to the corresponding SWML_SSL_* environment variable. Accepts the same keys as the Properties section below (enabled, certPath, keyPath, domain, hsts, hstsMaxAge).

Properties

enabled
boolean

Whether SSL is enabled. Falls back to SWML_SSL_ENABLED env var.

certPath
string | null

Filesystem path to the PEM-encoded certificate. Falls back to SWML_SSL_CERT_PATH.

keyPath
string | null

Filesystem path to the PEM-encoded private key. Falls back to SWML_SSL_KEY_PATH.

domain
string | null

Domain name for HSTS headers. Falls back to SWML_SSL_DOMAIN.

hsts
booleanDefaults to true

Whether to emit Strict-Transport-Security headers.

hstsMaxAge
numberDefaults to 31536000

HSTS max-age value in seconds (default 1 year).

Methods

Example

import { SslConfig } from '@signalwire/sdk';
const ssl = new SslConfig();
if (ssl.isConfigured()) {
const opts = ssl.getServerOptions();
console.log('SSL ready with cert and key');
} else {
console.log('SSL not configured — set SWML_SSL_ENABLED=true');
}