Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.slipway.sh/llms.txt

Use this file to discover all available pages before exploring further.

Notification channels are org-scoped delivery destinations for deployment events. Set them up once at the org level, then subscribe individual repos to them from each repo’s Notifications tab.

Where to find it

/{slug}/settings/notifications — under Settings → Notifications in the org sidebar. Admins only.

Channel types

Discord

Paste a Discord channel webhook URL (https://discord.com/api/webhooks/…). Slipway posts as the slipway username with a coloured embed per event:
  • greenhealthy
  • blueupdated
  • redfailed
  • graytorn_down
To get the URL: in Discord, Channel settings → Integrations → Webhooks → New Webhook → Copy Webhook URL.

Slack

Paste a Slack incoming-webhook URL (https://hooks.slack.com/services/…). Slipway posts an attachment-style message with the same colour coding. To get the URL: at api.slack.com/apps, create or open an app, enable Incoming Webhooks, then Add New Webhook to Workspace and copy the resulting URL.

Generic webhook

Any HTTPS endpoint that accepts a JSON POST. Use this to wire deployments into your own tooling — incident response, status pages, internal dashboards. The payload schema is documented at Webhook payload. Optionally provide an HMAC signing secret. When set, every outbound POST carries:
X-Slipway-Signature: sha256=<hex-digest>
…computed as hmac_sha256(body, secret) over the raw request body. Your receiver should verify the signature in constant time before trusting the payload.

Encryption

Channel URLs and signing secrets are encrypted at rest with AES-256-GCM under the same KEK as the rest of the platform’s secrets (see Secrets for KEK provider details). The plaintext URL is never returned by the API — the UI shows a masked preview like https://discord.com/…/abcd.

Test before subscribing

Every channel row has a Send test action that posts one synthetic payload. Use it to confirm the webhook URL is correct and your receiver is reachable before you subscribe a repo to it.

Delivery failures

If a POST returns a non-2xx status or times out (10s), slipway records a notification_failed event on the deployment with the channel id. Delivery is fire-and-forget — there are no retries in v1, and a dead webhook will never block a deployment.

Lifecycle

StateBehaviour
Channel createdAvailable for repos to subscribe to; no traffic until at least one subscription exists.
Channel editedURL / signing secret rotation takes effect on the next event. In-flight POSTs already use the old values.
Channel deletedEvery subscription pointing at this channel is removed along with the row.