Appearance
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 (
sourcesample, external idSAMPLE-1). It is not a vendor webhook and does not use an incoming slot.POST /v1/auth/onboarding/sample-pulsereturns that row. An archived sample stays archived until it is hard-deleted. The first live Pulse archives it. Pulse reads includeis_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/liveonly.
2026-09-23
Changed
- The public OpenAPI reference is withdrawn until language SDKs ship after launch. Former
/api-reference,/openapi.json,/scalar.html, and/sdkURLs 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
/sdkURLs redirect to this site’s home page.
2026-09-10
Changed
- Public docs canonical host is
https://docs.exhaleoncall.com.https://exhale-docs.kolstromsystems.comredirects to that host (path and query preserved). API default host ishttps://exhaleoncall.com. See API versioning.
2026-09-05
Changed
- Customer auth 401 / 429 responses now set a specific
error.codeinstead of genericUNAUTHORIZED/RATE_LIMITEDfor login, MFA, password change/reset, and per-email lockout. Unknown email and wrong password both returninvalid_credentialswith 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-commsplusPOST /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.codevalues,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 exampleGET /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
/v1and 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.