X-Tenant-Id or authenticated session)
and the X-Requested-With: XMLHttpRequest header on mutating requests.
GET /api/v1/notifications/providers
List all notification destinations for the tenant. Secrets are redacted (••••••••) in the returned config blobs.
RBAC: viewer, editor, or admin.
Response
POST /api/v1/notifications/providers
Create a new destination. Admin only.Request Body
| Field | Type | Required | Description |
|---|---|---|---|
kind | string | Yes | One of slack, teams, webhook, ops_email |
name | string | Yes | Human-readable label (1–120 chars) |
config | object | Yes | Kind-specific config (validated against the adapter schema) |
enabled | boolean | No | Defaults to true |
Config shapes
kind: slack
kind: slack
kind: teams
kind: teams
kind: webhook
kind: webhook
secret and headers are optional. When secret is present, each POST
includes X-Kaireon-Signature: sha256=<hex> over the body.kind: ops_email
kind: ops_email
email integration.Response (201)
Returns the created record (without theconfig blob — call GET :id for the redacted view).
Errors
422—configfailed the adapter’s schema (e.g., non-HTTPS webhook URL).400—kindis not a recognized adapter.
GET /api/v1/notifications/providers/:id
Read one destination. Returns the redacted config. RBAC: viewer, editor, or admin.PATCH /api/v1/notifications/providers/:id
Partial update. Admin only.Request Body
| Field | Type | Description |
|---|---|---|
name | string | Rename destination |
enabled | boolean | Pause / resume |
config | object | Merged into existing config; re-validated against adapter schema |
config, supply only the fields that changed. Unsupplied
fields keep their current value. Secret-like fields left as the ••••••••
placeholder are ignored.
DELETE /api/v1/notifications/providers/:id
Delete a destination. Admin only. Returns204 on success.
Alert rules that reference the deleted destination continue to evaluate but
will log delivery_failed on their next fire.
POST /api/v1/notifications/providers/:id/test
Fire the adapter’stestConnection() probe. Admin only.
Response (200 on success, 502 on adapter failure)
POST /api/v1/notifications/send
Dispatch an ad-hoc notification to one or more destinations. Used by the alert-rule evaluator and scheduled reports; also callable by admins for testing. Admin only.Request Body
| Field | Type | Required | Description |
|---|---|---|---|
providerIds | string[] | Yes | 1–20 notification provider UUIDs |
notification | object | Yes | Notification payload (below) |
Notification payload
severity is one of info, warning, critical. fields and
sourceUrl are optional.
Response
200 when at least one provider accepted the dispatch, 502 when every
provider failed: