Skip to main content
Version: 0.1.0

switchboard HTTP API

Inbound webhook ingestion and the local-only web UI for switchboard.

Three groups of endpoints

  • Webhook ingestion (/webhooks/*): providers POST here. Signed providers are verified-or-rejected (401, not persisted); the generic endpoint uses a shared-secret token (or open).
  • Operator API (/api/v1/*): OAuth-guarded (operator grants) — register agents, vend endpoints, list what you own. The switchboard CLI is its reference client.
  • Web UI (/, /log, /providers, /settings) + the SSE stream (/events): server-rendered HTML (html/template + HTMX) plus a text/event-stream for live updates.

Authentication posture (ADR-0001, brief §8)

The service is localhost-bound by default and ships no in-app auth for the UI. If it is ever exposed on the homelab LAN it MUST sit behind Caddy forward_auth — auth is provided by the reverse proxy, not built into this app for the MVP. The UI/SSE/health endpoints below are therefore marked security: [] (no in-app auth) by design, not by oversight.

For webhook endpoints, "authentication" means per-provider signature verification (signed providers) or a shared-secret token that authenticates the caller (generic). See ADR-0003.

Authentication

HMAC-SHA256 of the raw body, sha256= prefixed.

Security Scheme Type:

apiKey

Header parameter name:

X-Hub-Signature-256

Contact

Joe Stump:

License

MIT