Add an envelope-encrypted delivery destination to a schedule.
Creates an export destination for a non-email delivery channel (Slack incoming webhook for MVP — DVT-729). Requires dashboard:write. Not available on xlsx/csv schedules (400): those are attached to email only and never stored, so a channel has nothing to link to.
The plaintext webhook URL is envelope-encrypted by the engine broker (AES-256-GCM, per-row DEK, AAD bound to the destination id and org — ADR-0051 §4, ADR-0012). Go never persists or logs the plaintext URL. Only the ciphertext is stored.
Strict URL validation: scheme must be https, host must be exactly hooks.slack.com (no port, no userinfo, no suffix), path must be non-empty.
On its tick the export runner (DVT-727) decrypts the URL on the engine and posts a Block Kit message to the channel (DVT-729). A duplicate (schedule_id, kind, label) is rejected with 409 to prevent duplicate posts per tick (DVT-744). Returns the read projection (id, scheduleId, kind, label, lastStatus); secret columns are never serialised.
Request
- Base URL: http://localhost:8080
- URL: http://localhost:8080/v1/dashboards/{id}/export-schedules/{sid}/destinations
- Auth: one of:
- API key in cookie dvt_session
- HTTP bearer
Request body
Response
Destination created.
Changes
No recorded changes to this operation across all 1 revision of this API.