fastpluggy-notification-center
Persistent notification center for FastPluggy with topbar bell icon, event bus integration, pluggable delivery channels, and optional Web Push support.
Installation
pip install fastpluggy-notification-center
For Web Push support:
pip install fastpluggy-notification-center[push]
Features
- Topbar bell icon — unread badge count, slide-out notification panel
- Event bus integration — listens to all
notification.*events automatically - Pluggable channels — any plugin can register as a delivery channel via the
NotificationChannelprotocol - Channel relay — forward notifications to external channels (ntfy, email, etc.) based on category
- Web Push — browser push notifications via VAPID (auto-generates keys on first load)
- Notification categories —
info,success,warning,errorwith colored badges - Read/unread tracking — mark individual or bulk mark-as-read
- Auto-cleanup — configurable retention period (default 30 days)
Configuration
Settings are managed via NotificationCenterSettings (database-backed). Configure through the FastPluggy settings UI.
| Setting | Default | Description |
|---|---|---|
notification_retention_days |
30 |
Days to keep notifications before cleanup |
max_notifications_per_page |
50 |
Pagination size for notification list |
relay_enabled |
false |
Enable forwarding to delivery channels |
relay_channels |
[] |
Channel names to relay to (empty = all discovered) |
relay_categories |
["error"] |
Only relay notifications with these categories |
web_push_enabled |
true |
Enable browser Web Push support |
vapid_private_key |
"" |
VAPID private key (auto-generated if empty) |
vapid_public_key |
"" |
VAPID public key (auto-generated if empty) |
vapid_contact_email |
"" |
Contact email for VAPID identification |
Usage
Sending notifications via event bus
Any plugin can emit a notification event:
fast_pluggy.events.emit("notification.info", payload={
"title": "Task completed",
"message": "Backup finished successfully",
"category": "success",
"data": {"task_id": 42},
})
Sending browser push notifications
fast_pluggy.events.emit("notification.push", payload={
"title": "Deployment ready",
"message": "v1.2.0 is live",
"url": "/plugin/ecosystem_status/",
})
Explicit relay to all channels
Bypasses the category filter:
fast_pluggy.events.emit("notification.relay", payload={
"title": "Critical alert",
"message": "Database connection lost",
"category": "error",
})
Registering a delivery channel
Any plugin can act as a delivery channel by implementing the NotificationChannel protocol:
from fastpluggy_plugin.notification_center.channels import NotificationChannel
class MyChannel:
channel_name = "my_channel"
def send(self, title, message, category, data=None):
# deliver the notification
...
class MyPlugin(FastPluggyBaseModule):
notification_channel = MyChannel()
The notification center discovers channels automatically at startup.
Dashboard
The notification panel is accessible via the topbar bell icon on every page. A full notification history page is available at /plugin/notification_center/ (CI) or /plugin-pkg/notification_center/ (local dev).
Metadata
Release files for fastpluggy-notification-center 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastpluggy_notification_center-0.2.0.tar.gz | 23.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastpluggy_notification_center-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.9 kB
Release files / fastpluggy_notification_center-0.2.0.tar.gz
| Download URL | fastpluggy_notification_center-0.2.0.tar.gz |
|---|---|
| Size | 23.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f819b53a130170238aceb46a8e51436a80bb21b0f308ddd01b833b809b9bd59
|
|
BLAKE2b-256 checksum How to use checksums |
2e349828c57e76958a4fdfdc405bac9dd3ee38fcb024809e321b5f5489bc2c87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / fastpluggy_notification_center-0.2.0-py3-none-any.whl
| Download URL | fastpluggy_notification_center-0.2.0-py3-none-any.whl |
|---|---|
| Size | 23.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d03e67f156284beed6ee1925151fc6a60eb70a9f7eee40d1069b2fa929e102b
|
|
BLAKE2b-256 checksum How to use checksums |
490ed33fcff232f16294258a92d2641477eef606283388a13e38d0e76a6d7e9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|