Skip to content

Changelog ​

Integrator-facing changes to connections and this documentation site. For product UI changes, see the Exhale app release notes (when published).

2026-10-03 ​

Changed ​

  • PagerDuty connect is the manual Generic Webhooks v3 path (workspace URL and signing secret). One-click OAuth is not offered, and the PagerDuty card no longer offers incident-note write-back. An optional REST API token still powers on-call schedule sync.

2026-10-02 ​

Added ​

  • New workspaces include a sample Pulse (source sample, external id SAMPLE-1). It is not a vendor webhook and does not use an incoming slot. POST /v1/auth/onboarding/sample-pulse returns that row. An archived sample stays archived until it is hard-deleted. The first live Pulse archives it. Pulse reads include is_sample.

2026-09-24 ​

Changed ​

  • Hosted webhook examples use https://exhaleoncall.com/webhooks/.... The customer host does not publish /v1/webhooks/.... Session and admin routes stay under /v1. See API versioning.
  • JSM Operations documents OAuth connect, scopes, and disconnect. Context pages list default OAuth scopes and Disconnect.
  • Customer-host health is GET /health/live only.

2026-09-23 ​

Changed ​

  • The public OpenAPI reference is withdrawn until language SDKs ship after launch. Former /api-reference, /openapi.json, /scalar.html, and /sdk URLs redirect to this site’s home page. Webhook setup stays in the source guides.

2026-09-18 ​

Changed ​

  • API reference surface list no longer included /v1/learn (that API is not a launched customer surface). The catalog itself was withdrawn on 2026-09-23.

2026-09-16 ​

Changed ​

  • Public docs are organized as Connections — Sources (incoming webhooks), Context (triage enrichment and ticketing), and Notifications (outbound after triage). Former /integrations/* URLs redirect. Grafana context is /connections/context/grafana; Grafana ingest remains a Sources page.

2026-09-15 ​

Changed ​

  • Language SDKs are not a public product yet. Use the source guides on this site. The public OpenAPI catalog was withdrawn on 2026-09-23. Former /sdk URLs redirect to this site’s home page.

2026-09-10 ​

Changed ​

  • Public docs canonical host is https://docs.exhaleoncall.com. https://exhale-docs.kolstromsystems.com redirects to that host (path and query preserved). API default host is https://exhaleoncall.com. See API versioning.

2026-09-05 ​

Changed ​

  • Customer auth 401 / 429 responses now set a specific error.code instead of generic UNAUTHORIZED / RATE_LIMITED for login, MFA, password change/reset, and per-email lockout. Unknown email and wrong password both return invalid_credentials with the same English message. See Errors & authentication.

2026-08-24 ​

Added ​

  • Python and TypeScript SDKs — tenant API key clients for GET /v1/pulses, get-by-id, retry-triage, and list notes. Withdrawn from public docs on 2026-09-15. The OpenAPI catalog was withdrawn on 2026-09-23. Use the source guides.
  • Statuspage draft from pulse (Growth or higher) — PUT /v1/auth/context-connectors/statuspage-comms plus POST /v1/pulses/{id}/statuspage-draft. Subscriber notifications stay off. See Statuspage.
  • Optional PagerDuty schedule webhook (POST /webhooks/pagerduty/schedule) invalidates Exhale’s cached on-call roster. Same signing as incident ingest; poll remains the fallback. See PagerDuty.
  • PagerDuty documents App Directory listing as distribution; connect remains in Exhale (manual webhook).

2026-08-21 ​

Added ​

  • incident.io companion webhook ingest (POST /webhooks/incident-io). Unique URL token auth like other companions; Svix HMAC is not verified. See incident.io.

2026-08-20 ​

Added ​

  • Manual OpsGenie connect can store a GenieKey and post scrubbed triage summaries as alert notes (US or EU API host). OAuth notes are unchanged.

Changed ​

  • Observability context adapters (New Relic, Datadog, and the other Connections → Context APM connectors) attach scrubbed excerpts at triage time. Connect/test and triage fetch are both shipped. Incoming webhook ingest is unchanged.
  • The API reference surface list at the time included /v1/team. That catalog was withdrawn on 2026-09-23.
  • Errors & authentication documents Google and GitHub identity social login (Sign in / Sign up). That OAuth path does not connect repos; Connections → Context remains separate.
  • Public integration guides no longer deep-link the private repository wiki. Auth, lifecycle, required fields, and errors stay on each integrator page.

2026-08-13 ​

Changed ​

  • Public integration guides at the time showed /v1/webhooks/... URLs. Current hosted examples use /webhooks/... (see the 2026-09-24 entry).
  • The API reference surface list at the time included /v1/learn. That entry was removed on 2026-09-18, and the catalog was withdrawn on 2026-09-23.
  • Errors & authentication documents custom 403 error.code values, X-Triage-Pending-Count, and tenant API key hard-delete of test pulses.

2026-08-07 ​

Added ​

  • Versioned public API — Canonical routes under /v1 (for example GET /v1/pulses, POST /webhooks/pagerduty). Unversioned paths remain as compatibility aliases. See API versioning.
  • Public OpenAPI on this site listed /v1/... paths only. Withdrawn on 2026-09-23.
  • This changelog page.

Notes ​

  • The API process mounts routes under /v1 and unversioned aliases. On the hosted app, new webhook subscriptions use /webhooks/....
  • Webhook signing and auth rules are unchanged; only the path prefix is new for the versioned mount.

Earlier ​

Public integrator docs (VitePress), OpenAPI enrichment, and tenant API credentials shipped before this changelog existed. See Overview.

Exhale by Kolstrom Systems LLC