Deplo

Notifications

Alert channels and browser push subscriptions.

A channel is a webhook (Slack, Discord, a generic URL) with its own set of subscribed alerts. Channels are JSON in and out: the shape is the one the dashboard's channel editor saves, and the webhook URL is the credential for the room it posts in, so reading channels needs manage_notifications.

Channels

notificationChannels

Any signed-in principal. Returns JSON.

The active team's configured channels, each with its own subscribed alerts. Needs manage_notifications: a channel carries the webhook URL, which is the credential for the room it posts in.

query {
  notificationChannels
}

saveNotificationChannel

Any signed-in principal. Returns JSON.

Create a channel (omit id) or replace one. Returns the saved channel.

ArgumentTypeDescription
idID
inputJSON!
mutation {
  saveNotificationChannel(
    input: { kind: "slack", name: "#deploys", enabled: true, url: "https://hooks.slack.com/services/…", alerts: ["deployment_failed", "backup_failed"] }
  )
}

testNotificationChannel

Any signed-in principal. Returns Boolean.

Send a one-off test alert through one channel, using its saved config.

ArgumentTypeDescription
idID!
mutation {
  testNotificationChannel(id: "chan_9f1c2ab7d3e4f5a6")
}

deleteNotificationChannel

Any signed-in principal. Returns Boolean.

Remove a channel. Its subscribed alerts go with it.

ArgumentTypeDescription
idID!
mutation {
  deleteNotificationChannel(id: "chan_9f1c2ab7d3e4f5a6")
}

Browser push

webPushPublicKey

Any signed-in principal. Returns String.

This instance's VAPID public key, minted on first use. Public by design.

query {
  webPushPublicKey
}

subscribeWebPush

Any signed-in principal. Returns Boolean.

Register this browser for push alerts in the active team.

ArgumentTypeDescription
authString!
endpointString!
p256dhString!
mutation {
  subscribeWebPush(endpoint: "https://push.example.com/send/abc", p256dh: "BNc…", auth: "k8s…")
}

unsubscribeWebPush

Any signed-in principal. Returns Boolean.

Forget this browser's push registration.

ArgumentTypeDescription
endpointString!
mutation {
  unsubscribeWebPush(endpoint: "https://push.example.com/send/abc")
}

See also

Did this page help you?

On this page