V8 Central — Product & Technical Spec
  1. Docs
  2. Modules
  3. Notifications

#Notifications

B3.14+B3.15 now built/pushed by Pair2 (2026-10-10). Channels have no saved-count cap, publicHTTPS443 webhook destinations, masked retained credentials and asynchronous tests. Queued is not sent; locally recorded means no email delivered. Current channel API/screens. IP-added account-security notices to saved channels conflict with Bhavik's server/app-only rule; do not treat routing as approved. Phase11 routing/attachments remain future work.

#Requirements (V8 Phase 3) V8 requirement

#FeatureRules
3.14In-app notificationsPaginated list, unread count, mark one / all as read
3.15Notification channelsEmail, Telegram, Pushover, Slack, Discord, Webhook. Add / edit / delete + send test. Discord is set up with a Discord webhook URL (like Slack). Webhook takes public HTTPS URL on port443 and Central POSTs the notification (title + message) there as JSON, like V7 V8 requirement 2026-10-03
3.17Server alertsCentral calls the OSS API to get server alerts, shows them and sends them to the user's channels. Built with the Servers phase
3.5Email preferencesOn/off: account updates, credentials, informative emails

#V7 reference V7 only

  • notifications (Laravel database notifications): GET /notifications/unread, GET /notifications/mark-as-read.
  • notification_channels (per user): type, label, bot_token, group_id, email, webhook_url. Endpoints: resource + send-test-notification. V7 already had Discord and Webhook types (both use webhook_url), which is why the backend added them to V8 on 2026-10-03 — migrated channels keep working.
  • Per-server channel links: GET/POST /servers/{server}/notification-channels, DELETE …/{id}.
  • Server alerts were produced by V7's own monitoring jobs (execute:server-monitor, execute:service-monitoring, disk alerts from InsightHub webhook).

#In-app UX

  • Bell in the top bar with an unread badge. A popover lists the latest 10, with "Mark all as read" and "View all" (/notifications).
  • Each item: icon by type, translated title/body (the backend sends a type + params, not English text Assumption), time, link to the resource.
  • Real-time: V8 Phase 1 excludes broadcasting V8 requirement, so poll the unread count (e.g. every 60 s while visible) until broadcasting exists.

#Notification groups — published by the backend

Phase 11 (2026-10-05) replaces the proposal this page used to carry. V8 requirement There are ten fixed groups — six at server level (Alerts, Backups, Apps & deploys, SSL & domains, Databases, Server changes) and four at account level (Security, Billing, Plan, Organization, the first three required). The events inside each group come from the backend's event list (11.5), so a later phase adds events without new groups and without a frontend change. The full list, with everything each group covers, is on FE: Notifications & mail.

How the user controls them (11.7): channels are attached per server, each with the six server groups ticked — all on by default, as in V7 — and the four account groups are chosen once in Account → Notification settings. That account-level reach is new in V8 (11.8); V7 sent only server events to channels.

The earlier frontend proposal on this page (a hand-written list of server.offline, subscription.expiring, wallet.low_balance and so on) is dropped — every one of those cases falls inside a published group, so there is nothing left for the frontend to invent.

ServerAvatar V8 Central · prepared by central-app-2 (Pair 2 frontend) for Bhavik Jethwa · the frontend in this spec is not built yet; the backend started on 2026-10-08 · Built 2026-10-29 03:20 UTC