Skip to content

feat: add Matrix chat notification support (#211)#215

Open
MrSchneemann wants to merge 2 commits intooperacle:developfrom
MrSchneemann:feat/matrix-notification
Open

feat: add Matrix chat notification support (#211)#215
MrSchneemann wants to merge 2 commits intooperacle:developfrom
MrSchneemann:feat/matrix-notification

Conversation

@MrSchneemann
Copy link

Summary

Implements native Matrix chat notification support as requested in #211.

  • New Matrix notification channel in the UI (homeserver URL, room ID, access token)
  • Messages sent via the Matrix Client-Server API using a bot account approach with room ID targeting
  • HTML formatted messages with severity-based colors (org.matrix.custom.html):
    • 🔴 Down / failed / error → red
    • 🟡 Warning / expiring → yellow
    • 🟠 Maintenance / paused → orange
    • 🟢 Up / resolved → green
  • Plain-text fallback for clients without HTML support
  • PocketBase migration for the new schema fields

Changes

  • server/service-operation/notification/matrix.go — Matrix notification service with HTML formatting
  • server/service-operation/notification/types.go — added matrix_homeserver, matrix_room_id, matrix_access_token fields
  • server/service-operation/notification/manager.go — registered MatrixService
  • server/pb_migrations/1772200000_updated_alert_configurations_matrix.js — DB migration adding Matrix fields and select value
  • application/src/ — Matrix option in channel dialog, list view, settings tabs, and translations (EN + KM)
  • application/public/upload/notification/matrix.png — Matrix channel icon

Closes #211

Implements native Matrix notification channel support, allowing users
to receive service alerts in any Matrix room via the Client-Server API.

Changes:
- server/service-operation/notification/matrix.go: new Matrix service
  implementing the NotificationService interface (PUT /_matrix/client/v3/...)
- server/service-operation/notification/types.go: add MatrixHomeserver,
  MatrixRoomID, MatrixAccessToken fields to AlertConfiguration
- server/service-operation/notification/manager.go: register MatrixService
- server/pb_migrations/1772200000_updated_alert_configurations_matrix.js:
  PocketBase migration adding matrix fields and notification_type value
- application: Matrix option in channel dialog with homeserver/room/token
  fields, tab filter, list display, type definitions and translations (en, km)
- application/public/upload/notification/matrix.png: Matrix channel icon
Matrix notifications now send both a plain-text fallback and an
HTML formatted_body (org.matrix.custom.html) so Element and other
Matrix clients render rich, colored alerts:

- Down/failed/error → red (#E74C3C)
- Warning/expiring  → yellow (#F39C12)
- Maintenance/paused → orange (#E67E22)
- Up/resolved       → green (#2ECC71)
- Default/info      → blue (#3498DB)

Detail lines from the plain-text message are rendered as a <ul>
bullet list beneath the colored heading. Plain Body is preserved
for clients without HTML support.

Also includes resource type (CPU/DISK/etc.) in fallback server
alert messages to improve context.
@MrSchneemann MrSchneemann requested a review from tolaleng as a code owner March 1, 2026 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Matrix Chat Notifications

1 participant