Skip to content

feat: multi-provider notifications via Apprise + edit UI + clearer errors#2

Merged
hrokholskyi merged 1 commit intomainfrom
feat/notification-providers
Apr 28, 2026
Merged

feat: multi-provider notifications via Apprise + edit UI + clearer errors#2
hrokholskyi merged 1 commit intomainfrom
feat/notification-providers

Conversation

@hrokholskyi
Copy link
Copy Markdown
Contributor

  • Replace hand-rolled Slack webhook with Apprise-backed provider; add Discord, Email (SMTP), generic webhook, and raw Apprise URL channel types (one shared validator + URL translator in shared/notifications.py).
  • Edit notification channels from the settings page (channel type locked on edit; switching providers requires delete + recreate).
  • Mask SMTP password field in the channel form.
  • Capture Apprise's own log records during dispatch and surface the real failure reason in API responses and worker logs (instead of the opaque "Notification dispatch failed").
  • Alembic migration adds the four new enum values via autocommit_block (Postgres ALTER TYPE cannot run inside a transaction).

…rors

- Replace hand-rolled Slack webhook with Apprise-backed provider; add
  Discord, Email (SMTP), generic webhook, and raw Apprise URL channel
  types (one shared validator + URL translator in shared/notifications.py).
- Edit notification channels from the settings page (channel type locked
  on edit; switching providers requires delete + recreate).
- Mask SMTP password field in the channel form.
- Capture Apprise's own log records during dispatch and surface the real
  failure reason in API responses and worker logs (instead of the opaque
  "Notification dispatch failed").
- Alembic migration adds the four new enum values via autocommit_block
  (Postgres ALTER TYPE cannot run inside a transaction).
from datetime import datetime

from pydantic import BaseModel, EmailStr, field_validator
from pydantic import BaseModel, EmailStr, field_validator, model_validator
@hrokholskyi hrokholskyi merged commit b9c0e4d into main Apr 28, 2026
9 checks passed
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 0.20.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant