Skip to content

Notification Templates, Per-Job Event Filters, and Multiple Bug Fixes#118

Merged
Skyfay merged 17 commits into
mainfrom
dev
Jun 28, 2026
Merged

Notification Templates, Per-Job Event Filters, and Multiple Bug Fixes#118
Skyfay merged 17 commits into
mainfrom
dev

Conversation

@Skyfay

@Skyfay Skyfay commented Jun 28, 2026

Copy link
Copy Markdown
Owner

No description provided.

Skyfay added 16 commits June 26, 2026 14:27
Jobs can now store notification triggers as a multi-select set of success, partial, and failed outcomes instead of the old preset enum values. This includes a migration for existing jobs, updated job form controls, and runner logic that maps both legacy and new formats.

The notification system now emits a dedicated partial backup event with its own template and badge, and the UI/email presentation was updated to show partial upload states in orange instead of red.
Introduces notification templates as first-class entities with channels and per-channel event filters, plus job-to-template assignments via new Prisma models and migration. Adds template CRUD server actions and a dedicated service, exposes template management in the Templates dashboard tab, and integrates template selection into the job form and jobs API create/update flow. Backup completion now resolves notification recipients from assigned templates (while keeping legacy per-job channel behavior for compatibility), and notification logs can be filtered by executionId to show per-execution delivery results in history.
Move upload result evaluation to run immediately after metadata upload and before post-upload verification. This ensures success and partial-failure summaries are logged during the Uploading stage, while preserving existing behavior for final remote path selection, partial status assignment, and all-destination-failed errors.
Integrity checks now count destination scan failures separately and mark the system task as partial when some destinations cannot be reached, with clearer completion logging for unreachable destinations. Notification sends can now be linked to an execution ID so per-channel sent and failed results appear directly in the execution log history UI.
New backup jobs now auto-fill the default notification template when one is marked as default. The changelog was updated to document the behavior.
Adds a prominent breaking-change warning to vNEXT in the changelog. It clarifies that per-job notification settings are not migrated to Notification Templates, existing jobs lose notification config after update, and admins must create templates and reassign them to each job, with an optional default template for new jobs.
Restructured the notification template dialog channel configuration to match the job destinations layout. Changes include:

- Numbered channel rows for clarity
- ScrollArea with fixed height for better UX with many channels
- Moved event filter checkboxes into collapsible per-channel settings section
- Updated visual hierarchy and spacing to match existing UI patterns
Split the right column into separate rightTop and rightBottom props for more explicit layout control. Wrapped grid sections with Fragment elements and keys to improve React reconciliation. This change makes the component interface clearer and allows independent control of each grid section.
Fixes three related regressions across the dashboard and backup flow. The calendar range now uses UTC day boundaries so today's backups appear correctly in the last 12 months view on non-UTC servers, notification completion logging now records when legacy event filters skip a status, and job cloning no longer crashes when the source job has no notification templates. Also includes small React effect cleanup updates and the notification event count test adjustment.
Expanded unit test coverage with a large set of new tests across storage adapters (FTP, SFTP, S3/R2/Hetzner, Google Drive, OneDrive), SSH key handling, runner steps, restore pipeline, and core services including dashboard, storage, integrity, encryption, jobs, and notification templates. These tests target edge cases and failure paths to harden behavior and raise overall coverage. Updated the changelog with the new coverage metrics and test scope.
Move Create Group and Create API Key dialog actions into fixed DialogFooter sections so only form content scrolls, restoring proper scrolling behavior and keeping action buttons anchored. Also add hidden DialogDescription elements to both dialogs to satisfy aria-describedby accessibility requirements and remove related warnings. Update the changelog with the bug fix entry.
Remove the ineffective grid rows class from the flex-based dialog content and constrain the scroll area viewport so the API Trigger dialog scrolls correctly.
Updated the notification preview HTML rewrite to match the current `https://docs.dbackup.app/logo.png` logo URL, so logos render correctly in the dashboard email preview. Added a changelog bug-fix entry documenting the issue and fix.
Update the Discord notification preview field value class from `break-words` to `wrap-break-word` so long field content wraps correctly in the history preview UI.
Disable the middle-version database containers in the integration test compose file and keep the oldest and newest versions active for each supported family. Update the integration test configs and helper scripts to target the remaining containers, switch multi-database tests to the newest active versions, and document the reduced test footprint in the changelog.
Updates the app, docs, and OpenAPI versions to 2.8.0 and marks the changelog release as published with the latest bug fixes, tests, and Docker tags.
Comment thread tests/unit/lib/ssh/pkcs8-compat.test.ts Fixed
Cleans up unit tests to satisfy updated ESLint and TypeScript checks. This updates SSH key test setup (including stronger RSA key size and safer private key casting), removes a stale throw-literal lint disable, renames intentionally unused variables with underscore prefixes, and wraps Prisma async mock implementations with compatible casts. The changelog was also updated under the test section to document these lint and type fixes.
@Skyfay Skyfay merged commit c847f72 into main Jun 28, 2026
8 checks passed
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.

2 participants