Manage notification channels instead of an ntfy topic
Mirrors the server's channels API: add/remove channels per user from the Users section. Requires the matching server release. Claude-Session: https://claude.ai/code/session_016mBLURvJoMuUEr9cB2RpUN
This commit is contained in:
@@ -13,7 +13,7 @@ Written in Go using [Bubbletea](https://github.com/charmbracelet/bubbletea).
|
||||
- **Teams** — switch between your teams, or see all of them at once
|
||||
- **On-call schedule** — visual calendar of who is on duty in a team, assign and remove entries
|
||||
- **Statistics** — MTTA and MTTR, plus alert frequency by name, hour and day
|
||||
- **User management** — add and remove users, manage API keys, set each user's ntfy topic
|
||||
- **User management** — add and remove users, manage API keys, manage each user's notification channels
|
||||
|
||||
> Requires terdut-server **v0.20.0 or later**. The server became team-scoped in
|
||||
> v0.12 and this client follows it; earlier servers answer 404 for `/api/teams`
|
||||
@@ -36,7 +36,7 @@ server refuses anybody else. Stats always cover all your teams; the server
|
||||
cannot narrow them to one.
|
||||
|
||||
Administrators are the only users who can create or delete users, or act on
|
||||
someone else's password, topic or API keys. Everyone can manage their own.
|
||||
someone else's password, notification channels or API keys. Everyone can manage their own.
|
||||
|
||||
## Alerts and incidents
|
||||
|
||||
@@ -58,17 +58,23 @@ Two behaviours worth knowing before you press a key:
|
||||
- **Snooze is the "not now" button.** It hides an incident from the default queue
|
||||
without closing it, and expires on its own.
|
||||
|
||||
## Push notifications
|
||||
## Notifications
|
||||
|
||||
When the server is configured for ntfy, an incident that opens pages whoever is
|
||||
on call. Each user has their own topic, shown as a column in the Users section
|
||||
and edited with `t`. A user with no topic falls back to the server's shared
|
||||
fallback topic, which carries **no Acknowledge button** — the topic is shared, so
|
||||
a button on it would let any subscriber acknowledge as somebody else.
|
||||
When the server has a notification provider configured (ntfy today), an incident
|
||||
that opens pages whoever is on call, on every notification channel they have
|
||||
switched on. A channel is a provider type and an address (an ntfy topic); each
|
||||
user's kinds of channel are shown as a column in the Users section and managed
|
||||
with `t`: `a` adds one as `type:address` (for example `ntfy:my-topic`), `r`
|
||||
removes one by its ID. Addresses are only sent to their owner, so an
|
||||
administrator sees the kind, not where it goes. Turning a channel off is done in
|
||||
the web UI. A user with no channel falls back to the server's shared fallback,
|
||||
which carries **no Acknowledge button** — the fallback is shared, so a button on
|
||||
it would let any recipient acknowledge as somebody else.
|
||||
|
||||
Every delivery lands on the incident's timeline: `Notified <user> (triggered)`
|
||||
when ntfy accepted the page, and `Notification to <user> failed` when it ran out
|
||||
of retries. That second one is the one to look for when nobody's phone rang.
|
||||
Every delivery lands on the incident's timeline: `Notified <user> (triggered via
|
||||
ntfy)` when the provider accepted the page, and `Notification to <user> failed`
|
||||
when it ran out of retries. That second one is the one to look for when nobody's
|
||||
phone rang.
|
||||
|
||||
|
||||
## Installation
|
||||
@@ -229,7 +235,7 @@ Users section:
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `n` | Create a user |
|
||||
| `t` | Edit the user's ntfy topic — submit empty to clear it |
|
||||
| `t` | Manage the user's notification channels — `a` add (`type:address`), `r` remove by ID |
|
||||
| `d` | Delete a user |
|
||||
| `k` | API keys for the selected user |
|
||||
| `p` | Set the selected user's web UI password — asks for the current one when it is your own |
|
||||
|
||||
Reference in New Issue
Block a user