Skip to main content
Platinur delivers operational events to a Slack webhook, a generic webhook, or SMTP email. Notifications are configured on the Configuration page in the Notifications card: pick a channel, fill its fields, Save Changes, then Send Test. Channels are set up one at a time, but every configured channel receives every event. Without a configured destination, failures appear only in Monitoring.

Events

  • Failed refreshes (refresh_failed) — a source load, a dbt run, or an Evidence rebuild fails.
  • Failed proposal validation (validation_failed) — validation of a proposal fails.
  • Failed assistant tasks (agent_failed) — an Assistant task fails.
  • Ready proposals (proposal_ready) — a validated proposal is waiting in Promotions.
  • Production deploys (deploy_succeeded) — a merged promotion PR is applied to the production runtime.
  • Schema drift (schema_drift) — a drift check finds changes in source schemas. Repeated checks that find the same drift do not re-send.
  • Test (test) — sent by the Send Test button.

Slack

One field: Slack Webhook URL — a Slack incoming-webhook URL (https://hooks.slack.com/services/...). Each event posts a message with the event title and detail, prefixed [Platinur].

Webhook

One field: Webhook URL — any HTTPS endpoint that accepts a JSON POST. Each event sends Content-Type: application/json with this shape:
{
  "event_type": "refresh_failed",
  "title": "dbt build failed in staging",
  "detail": "1 of 24 models failed: stg_orders",
  "metadata": { "environment": "staging", "command": "build" },
  "platinur_version": "1.0.0-rc1",
  "sent_at": "2026-06-12T09:15:00+00:00"
}
metadata varies by event: connector and target schema for source loads, task and proposal ids for Assistant events, drifted schema names for drift.

Email

  • Email To — the recipient address.
  • SMTP Host and SMTP Port (default 587).
  • SMTP Username and SMTP Password — used to log in when both are set.
  • From Address — defaults to the SMTP username when blank.
The email channel counts as configured once Email To and SMTP Host are saved. Delivery negotiates STARTTLS, the subject is [Platinur] <event title>, and the body carries the event detail plus metadata.

Send a test

The Send Test button below the form delivers a test event to every configured channel and reports the result; it is disabled until a destination is saved. Every test is recorded in the audit log. The API equivalent is POST /api/notifications/test, which accepts an optional kind (slack, webhook, or email) to test a single channel.

Delivery and secrets

Delivery is best-effort: each channel times out after 10 seconds, and a delivery failure never blocks or fails the underlying run — failed runs always remain visible in Monitoring. Payloads carry only event context — titles, run summaries, schema and connector names, task and proposal ids — never credentials. The destinations themselves (the Slack webhook URL, the webhook URL, the SMTP password) are stored encrypted as secret references and are not displayed again after saving; paste a new value to replace one.