Notification routing for attention, workflow and user-defined events.
| Channel | Status |
|---|---|
| Browser realtime | Implemented. |
| Desktop | Delivered through realtime events surfaced by Tauri. |
| Generic webhook | Implemented. |
Slack, Discord, Microsoft Teams, Telegram and email are later channel targets. Use a generic webhook bridge in the meantime.
The web client connects to the realtime notifications stream. When the
browser permission is granted, it creates a local notification from event
priority and summary.
Desktop notifications remain a client concern. The daemon remains the source of event truth.
GET /notifications/rules
POST /notifications/rules
Content-Type: application/json
X-Orbynode-CSRF: <csrf>
{
"event": "attention.created",
"channel": "webhook",
"target": "https://example.invalid/hook",
"enabled": true
}
Optional fields:
| Field | Meaning |
|---|---|
project_id |
Limit rule to one project. |
enabled |
Disable without deleting. |
POST /notifications/test
X-Orbynode-CSRF: <csrf>
Test notifications are also audited.
A webhook rule posts a JSON payload to the configured HTTPS or HTTP target. Treat webhook URLs and secrets as sensitive.
Recommended receiver behavior:
Expected event families include:
| Event | Meaning |
|---|---|
attention.created |
New approval, failure or blocked agent. |
attention.resolved |
Attention item resolved. |
workflow.updated |
Workflow status changed. |
notification.test |
User-triggered test. |
New event types are additive and documented before use.
Rules are in-memory in the current notification service. Delivery secrets are
never logged. Platform webhook registrations are separate durable /api/v1
records.
Planned channels:
Each channel should use the same rule model, explicit target configuration, secret handling and auditable test delivery.