diff --git a/.last-branch b/.last-branch index b0595f5..6202086 100644 --- a/.last-branch +++ b/.last-branch @@ -1 +1 @@ -v20260106-13-veeam-config-backup-overall-message +v20260106-14-veeam-m365-overall-message diff --git a/containers/backupchecks/src/backend/app/parsers/veeam.py b/containers/backupchecks/src/backend/app/parsers/veeam.py index c5a7cee..2b54e5e 100644 --- a/containers/backupchecks/src/backend/app/parsers/veeam.py +++ b/containers/backupchecks/src/backend/app/parsers/veeam.py @@ -932,8 +932,17 @@ def try_parse_veeam(msg: MailMessage) -> Tuple[bool, Dict, List[Dict]]: # Keep detailed overall message for non-success states, and always keep # the "Processing " marker when present (used for overrides/rules). + # Veeam Backup for Microsoft 365 can include a meaningful overall warning/info + # even when the run is reported as Success (e.g. missing application + # permissions/roles). Store it so it becomes visible in details and can be + # used for overrides. + is_m365 = (backup_type or "") == "Veeam Backup for Microsoft 365" if overall_message: - if status_word != "Success" or overall_message.lower().startswith("processing "): + if ( + status_word != "Success" + or overall_message.lower().startswith("processing ") + or is_m365 + ): result["overall_message"] = overall_message return True, result, objects diff --git a/docs/changelog.md b/docs/changelog.md index 76ff766..63dbd94 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -104,6 +104,12 @@ Removed an incorrectly indented redirect statement so the module loads correctly - Ensured multi-line warning messages from configuration backup emails are stored as a single overall message. - This allows overrides to be applied correctly for configuration backup warnings. +--- + +## v20260106-14-veeam-m365-overall-message +- Updated the Veeam Backup for Microsoft 365 mail parser to always persist the extracted overall “Details” warning/info message, even when the run is reported as Success. +- This ensures permission/role warnings (e.g. “Missing application permissions/roles…”) are stored and can be used for overrides. + ================================================================================================================================================ ## v0.1.16