v20260108-39-changelog-0.1.19 #74

Merged
ivooskamp merged 2 commits from v20260108-39-changelog-0.1.19 into main 2026-01-13 11:29:49 +01:00
4 changed files with 183 additions and 106 deletions

View File

@ -1 +1 @@
v20260108-38-missed-run-grace-window
v20260108-39-changelog-0.1.19

View File

@ -8,6 +8,127 @@ def changelog_page():
changelog = {
"completed_summary": [
{
"version": "0.1.19",
"status": "Completed",
"overview": [
"This release delivers a broad set of improvements focused on reliability, transparency, and operational control across mail processing, administrative auditing, and Run Checks workflows.",
"The changes aim to make message handling more robust, provide better insight for administrators, and give operators clearer and more flexible control when reviewing backup runs."
],
"categories": [
{
"category": "Mail Import Reliability and Data Integrity",
"items": [
{
"title": None,
"details": [
"Updated the mail import flow so messages are only moved to the processed folder after a successful database store and commit.",
"Prevented Graph emails from being moved when parsing, storing, or committing data fails, ensuring no messages are lost due to partial failures.",
"Added explicit commit and rollback handling to guarantee database consistency before any mail state changes occur.",
"Improved logging around import, commit, and rollback failures to make skipped or retried mails easier to trace and troubleshoot."
]
}
]
},
{
"category": "Administrative Mail Auditing and Visibility",
"items": [
{
"title": None,
"details": [
"Introduced an admin-only “All Mail” audit page that provides a complete overview of all received mail messages.",
"Implemented pagination with a fixed page size of 50 items to ensure consistent performance and predictable navigation.",
"Added always-visible search filters that can be combined using AND logic, including From, Subject, Backup, Type, Job name, and a received date/time range.",
"Added an “Only unlinked” filter to quickly identify messages that are not associated with any job.",
"Reused the existing Inbox message detail modal to allow consistent inspection of messages from the All Mail page.",
"Added a dedicated navigation entry so administrators can easily access the All Mail audit view.",
"Fixed modal opening behavior in the All Mail page to fully align click handling and popups with the Inbox implementation."
]
}
]
},
{
"category": "Inbox and Mail Body Rendering Improvements",
"items": [
{
"title": None,
"details": [
"Treated whitespace-only email bodies as empty during import so HTML report attachments can be extracted and displayed correctly.",
"Added legacy fallback logic in the Inbox message detail API to extract the first HTML attachment from stored EML files when bodies are empty or invalid.",
"Improved iframe rendering in the Inbox so full HTML documents (commonly used for report attachments) are rendered directly instead of being wrapped.",
"Added detection for “effectively empty” HTML bodies, such as empty Graph-generated HTML skeletons.",
"Ensured that both newly imported and already-stored messages can dynamically fall back to EML attachment extraction without requiring a reset."
]
}
]
},
{
"category": "Run Checks Usability and Control",
"items": [
{
"title": None,
"details": [
"Added a copy-to-clipboard icon next to ticket numbers in the Run Checks popup to quickly copy only the ticket code.",
"Prevented accidental selection of appended status text when copying ticket numbers.",
"Introduced a manual “Success (override)” action that allows Operators and Admins to mark a run as successful even if it originally failed or produced warnings.",
"Implemented backend support to persist the override state without modifying the original run data.",
"Updated UI indicators so overridden runs are clearly shown with a blue success status.",
"Ensured overrides apply only to the selected run and do not affect historical or related runs.",
"Improved Run Checks mail rendering by falling back to text bodies when HTML bodies are missing, matching Inbox and All Mail behavior.",
"Added support for extracting HTML content from stored EML files when both HTML and text bodies are unavailable.",
"Ensured plain-text emails are safely rendered using preformatted HTML to preserve readability."
]
}
]
},
{
"category": "Customer, Ticket, and Scope Cleanup",
"items": [
{
"title": None,
"details": [
"Updated customer deletion logic to allow removal of customers even when tickets or remarks are linked.",
"Added explicit cleanup of related TicketScope and RemarkScope records prior to customer deletion.",
"Ensured jobs linked to a deleted customer are safely unassigned to prevent foreign key constraint errors.",
"Eliminated deletion failures caused by lingering ticket or remark relationships."
]
}
]
},
{
"category": "Parser Enhancements and Informational Messages",
"items": [
{
"title": None,
"details": [
"Added parser support for 3CX SSL Certificate notification emails.",
"Classified these messages as Backup: 3CX with Type: SSL Certificate.",
"Parsed and displayed certificate information in the Run Checks popup.",
"Stored these messages as successful runs so certificate status can be tracked over time.",
"Added detection for Synology DSM automatic update cancellation messages in both Dutch and English.",
"Classified Synology Updates messages as informational and set their overall status to Warning.",
"Excluded Synology Updates informational messages from scheduling logic and reporting output."
]
}
]
},
{
"category": "UI Layout and Status Accuracy Improvements",
"items": [
{
"title": None,
"details": [
"Moved the Details section above the email body in both Inbox and Job Details popups to improve readability.",
"Avoided long detail texts being constrained to narrow side columns.",
"Adjusted missed run detection to include a ±1 hour grace window around scheduled run times.",
"Prevented runs that arrive shortly after the scheduled time from being temporarily marked as Missed.",
"Ensured the Missed status is only applied after the full grace window has elapsed, reducing false alerts in Run Checks and Daily Jobs views."
]
}
]
}
]
},
{
"version": "0.1.18",
"status": "Completed",

View File

@ -1,110 +1,66 @@
## v20260108-26-mail-move-only-after-successful-import
- Changed mail import flow so messages are only moved to the processed folder after a successful database store and commit.
- Prevented Graph mails from being moved when parsing, storing, or committing to the database fails.
- Added explicit commit and rollback handling to ensure database integrity before mail state changes.
- Improved logging around import and commit failures to better trace skipped or retried mails.
---
## v20260108-27-admin-all-mail-audit-page
- Added an admin-only “All Mail” page showing all received mail messages with 50 items per page.
- Implemented always-visible search filters with AND-combined criteria: From, Subject, Backup, Type, Job name, and a received datetime window.
- Added “Only unlinked” filter to quickly find messages not linked to a job.
- Reused the existing Inbox message detail modal behavior to open and inspect messages from the All Mail page.
- Added navigation entry for admins to access the All Mail page.
---
## v20260108-28-admin-all-mail-popup-fix
- Fixed mail popup opening in the Admin All Mail audit page.
- Aligned click and modal handling with the Inbox implementation to ensure messages can be opened correctly.
- No functional changes to search, filtering, pagination, or permissions.
---
## v20260108-29-inbox-attachment-body-fallback
- Treat whitespace-only email bodies as empty during import, so HTML report attachments can be extracted from stored EML and shown as the message body.
- Add legacy fallback in the Inbox message detail API: when stored bodies are empty/whitespace, extract the first HTML attachment from EML and render it.
- Improve Inbox iframe rendering: if the returned content is a full HTML document (common for report attachments), render it directly instead of wrapping it.
---
## v20260108-30-customer-delete-ticket-remark-scopes
- Updated customer deletion logic to allow removal of customers that have linked tickets or remarks.
- Added explicit cleanup of related TicketScope and RemarkScope records before deleting the customer.
- Ensured jobs linked to the customer are safely unassigned to prevent foreign key constraint errors.
- Prevented deletion failures caused by existing ticket and remark relationships.
---
## v20260108-31-inbox-empty-body-attachment-render
- Detect “effectively empty” HTML bodies (e.g. empty HTML skeleton from Graph) and treat them as blank.
- Inbox import: when the Graph body is effectively empty and an EML is stored, extract the first HTML attachment and store it as html_body.
- Inbox message detail: for already-stored messages with effectively empty bodies, dynamically fall back to extracting the HTML attachment from the stored EML so the Inbox popup shows the report without requiring a reset.
---
## v20260108-32-runchecks-ticket-copy-button
- Added a small copy icon next to the ticket number in the Run Checks popup.
- Implemented copy-to-clipboard functionality to copy only the ticket number.
- Prevented accidental selection of the appended status text (e.g. “Active”) when copying tickets.
---
## v20260108-33-runchecks-success-override
- Added a manual “Success (override)” action in the Run Checks popup.
- Operators and Admins can mark a backup run as successful even if it originally failed or warned.
- Implemented backend support to store the override state.
- Updated UI logic so overridden runs are displayed with the blue success indicator.
- Ensured the override only affects the selected run and does not modify original run data.
---
## v20260108-34-runchecks-popup-mail-body
- Fixed Run Checks modal mail rendering by falling back to text_body when html_body is empty, matching Inbox/All Mail behavior.
- Added support to extract HTML content from stored EML when both html_body and text_body are blank (consistent with Inbox).
- Updated Run Checks details API to return a safe HTML body for plain-text emails using <pre> wrapping.
---
## v20260108-35-3cx-ssl-certificate-info-tracking
- Added parser support for 3CX SSL Certificate notifications.
- Classified these emails as Backup: 3CX, Type: SSL Certificate.
- Parsed the message content and displayed it in the Run Checks popup.
- Stored the message as a successful run so it could be tracked over time.
---
## v20260108-36-inbox-jobdetails-details-above-mail
### Changes
- Moved the **Details** section above the email body in the **Inbox** popup.
- Moved the **Details** section above the email body in the **Job Details** popup.
- Improved readability by avoiding long detail texts being constrained to the narrow left column.
---
## v20260108-37-synology-updates-info-parser
- Added detection for Synology DSM automatic update cancellation messages (NL/EN).
- Classified Synology “Updates” messages as informational only.
- Set overall status to Warning without creating schedules or expected-run logic.
- Excluded Synology Updates informational messages from reporting output.
---
## v20260108-38-missed-run-grace-window
- Adjusted missed run detection to respect a ±1 hour grace window around the scheduled run time.
- Prevented runs that arrive shortly after the scheduled time (e.g. a few minutes late) from being temporarily marked as Missed.
- Ensured Missed status is only applied after the full grace window has elapsed, avoiding false Missed entries in Run Checks and Daily Jobs.
================================================================================================================================================
## v0.1.19
This release delivers a broad set of improvements focused on reliability, transparency, and operational control across mail processing, administrative auditing, and Run Checks workflows. The changes aim to make message handling more robust, provide better insight for administrators, and give operators clearer and more flexible control when reviewing backup runs.
Mail Import Reliability and Data Integrity
- Updated the mail import flow so messages are only moved to the processed folder after a successful database store and commit.
- Prevented Graph emails from being moved when parsing, storing, or committing data fails, ensuring no messages are lost due to partial failures.
- Added explicit commit and rollback handling to guarantee database consistency before any mail state changes occur.
- Improved logging around import, commit, and rollback failures to make skipped or retried mails easier to trace and troubleshoot.
Administrative Mail Auditing and Visibility
- Introduced an admin-only “All Mail” audit page that provides a complete overview of all received mail messages.
- Implemented pagination with a fixed page size of 50 items to ensure consistent performance and predictable navigation.
- Added always-visible search filters that can be combined using AND logic, including From, Subject, Backup, Type, Job name, and a received date/time range.
- Added an “Only unlinked” filter to quickly identify messages that are not associated with any job.
- Reused the existing Inbox message detail modal to allow consistent inspection of messages from the All Mail page.
- Added a dedicated navigation entry so administrators can easily access the All Mail audit view.
- Fixed modal opening behavior in the All Mail page to fully align click handling and popups with the Inbox implementation.
Inbox and Mail Body Rendering Improvements
- Treated whitespace-only email bodies as empty during import so HTML report attachments can be extracted and displayed correctly.
- Added legacy fallback logic in the Inbox message detail API to extract the first HTML attachment from stored EML files when bodies are empty or invalid.
- Improved iframe rendering in the Inbox so full HTML documents (commonly used for report attachments) are rendered directly instead of being wrapped.
- Added detection for “effectively empty” HTML bodies, such as empty Graph-generated HTML skeletons.
- Ensured that both newly imported and already-stored messages can dynamically fall back to EML attachment extraction without requiring a reset.
Run Checks Usability and Control
- Added a copy-to-clipboard icon next to ticket numbers in the Run Checks popup to quickly copy only the ticket code.
- Prevented accidental selection of appended status text when copying ticket numbers.
- Introduced a manual “Success (override)” action that allows Operators and Admins to mark a run as successful even if it originally failed or produced warnings.
- Implemented backend support to persist the override state without modifying the original run data.
- Updated UI indicators so overridden runs are clearly shown with a blue success status.
- Ensured overrides apply only to the selected run and do not affect historical or related runs.
- Improved Run Checks mail rendering by falling back to text bodies when HTML bodies are missing, matching Inbox and All Mail behavior.
- Added support for extracting HTML content from stored EML files when both HTML and text bodies are unavailable.
- Ensured plain-text emails are safely rendered using preformatted HTML to preserve readability.
Customer, Ticket, and Scope Cleanup
- Updated customer deletion logic to allow removal of customers even when tickets or remarks are linked.
- Added explicit cleanup of related TicketScope and RemarkScope records prior to customer deletion.
- Ensured jobs linked to a deleted customer are safely unassigned to prevent foreign key constraint errors.
- Eliminated deletion failures caused by lingering ticket or remark relationships.
Parser Enhancements and Informational Messages
- Added parser support for 3CX SSL Certificate notification emails.
- Classified these messages as Backup: 3CX with Type: SSL Certificate.
- Parsed and displayed certificate information in the Run Checks popup.
- Stored these messages as successful runs so certificate status can be tracked over time.
- Added detection for Synology DSM automatic update cancellation messages in both Dutch and English.
- Classified Synology Updates messages as informational and set their overall status to Warning.
- Excluded Synology Updates informational messages from scheduling logic and reporting output.
UI Layout and Status Accuracy Improvements
- Moved the Details section above the email body in both Inbox and Job Details popups to improve readability.
- Avoided long detail texts being constrained to narrow side columns.
- Adjusted missed run detection to include a ±1 hour grace window around scheduled run times.
- Prevented runs that arrive shortly after the scheduled time from being temporarily marked as Missed.
- Ensured the Missed status is only applied after the full grace window has elapsed, reducing false alerts in Run Checks and Daily Jobs views.
---
## v0.1.18
This release focuses on improving ticket reuse, scoping, and visibility across jobs, runs, and history views to ensure consistent and flexible ticket handling.

View File

@ -1 +1 @@
v0.1.18
v0.1.19