Critical corrections to Inbox Management documentation:
Overview & Page Layout:
- Clarified: Inbox displays only UNAPPROVED emails
- Added callout: "Inbox Shows Only Unapproved Emails"
- Explained: Approved emails immediately disappear from inbox
- Inbox is a staging area for emails awaiting approval/deletion
Email Detail Modal - Metadata Section:
- REMOVED incorrect fields that don't exist for inbox emails:
* "Customer: If already approved..." (approved emails aren't in inbox!)
* "Approved: Checkmark..." (no checkmark - they disappear when approved!)
- Added list of action buttons (Approve, Re-parse, Delete, Download .eml)
What Happens After Approval:
- Changed "moved out of inbox" to "immediately disappears from inbox"
- Added: Future emails are "automatically approved and linked WITHOUT
appearing in the inbox" - they go directly to operational views
- New callout: "Approved Emails Don't Return" explaining auto-approval flow
Inbox Filters and Search:
- Changed "all imported emails" to "all UNAPPROVED imported emails"
Common Workflows - Setting Up New Customer:
- Updated step 5: "approved emails disappear from inbox"
- Added step 6: Jobs appear in Jobs/Daily Jobs/Run Checks pages
- Updated step 7: Future reports auto-approved, never appear in inbox
This accurately reflects that the inbox is ONLY for unapproved emails.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Corrected Mail Import Setup documentation to accurately reflect UI:
Step 2.3: "Save Settings (Again)" instead of "Save Final Configuration"
- Clarified there is only ONE "Save settings" button on the page
- Same button is clicked TWICE: once after credentials, once after folders
- Added warning callout: "Same Button, Two Steps"
- Emphasized this is the same button from Step 2.1, not a separate button
Future Improvement note updated:
- Specifically mentions clicking same button twice is not obvious
- Suggests possible solutions: separate sections with distinct save buttons,
or visual feedback about which step user is on
This accurately reflects the current UI where a single "Save settings" button
serves double duty, which will be improved in a future version for clarity.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Enhanced Mail Import Setup documentation to clarify configuration workflow:
Step 2.1 (Enter Graph Credentials):
- Added warning callout: Must save credentials FIRST before folder configuration
- Credentials must be saved and page refreshed before Step 2.2 works
Step 2.2 (Configure Mail Folders):
- Added prerequisite: Ensure credentials saved and page refreshed
- Clarified folder browser popup AUTOMATICALLY loads folder structure
- Emphasized: Don't type paths manually - click folders in popup
- Folder browser connects to Microsoft Graph and retrieves folders
- Added callout: Folder browser auto-generates correct path format
- Added note about planned UI improvement for clearer workflow
Step 2.3 (Save Final Configuration):
- Renamed from "Save Settings" to "Save Final Configuration"
- Clarified this is the SECOND save (first was in 2.1)
- Added tip callout explaining two-step save process
- Enhanced error checking list (credentials, folders, access policy)
This clarifies the actual user workflow where credentials enable folder browsing.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Enhanced Mail Import Setup documentation with additional security measures:
- Step 1.3: Start with Mail.Read only (read-only) for initial testing
- Step 1.4 (NEW): Restrict access to one mailbox via Application Access Policy
- Exchange PowerShell commands to create and test policy
- Ensures app can only access backup mailbox, not all tenant mailboxes
- Marked as "Optional but Recommended" following principle of least privilege
- Step 1.5: Add Mail.ReadWrite after testing (moved from 1.3)
- Updated Security Best Practices section to emphasize mailbox restriction
- Added security notes about starting read-only and rotating secrets (12 months)
Based on setup documented in /docker/develop/HOWTO-CREATE-GRAPH-APP.md
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Added comprehensive documentation for the Mail & Import section:
- Mail Import Setup: Microsoft Graph API configuration, Azure AD app registration,
folder setup, troubleshooting, and security best practices
- Inbox Management: Email review workflow, approval process, re-parsing,
deletion, and common workflows
- Mail Parsing: Parser system explanation, supported backup software,
match criteria, execution order, and troubleshooting
- Auto-Import Configuration: Automatic import scheduling, intervals, batch sizes,
auto-approval logic, manual import, and monitoring
Updated TODO-documentation.md to reflect progress (14 of 33 pages, 42% complete)
Updated changelog-claude.md with detailed content descriptions
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Corrected schedule display documentation based on actual UI:
Status Indicators (dots):
- Green dot: Job ran successfully
- Red dot: Job ran but failed
- White dot: Expected but not yet run (time not arrived)
- Gray dot: Expected but overdue (time passed, no run)
Run Count Badges:
- "1 run" (gray badge): Single run received
- "3 runs" (blue/cyan badge): Multiple runs received (stands out)
- Badge appears next to green dot when runs are successful
- Multiple runs (3+) highlighted with blue/cyan for attention
Removed incorrect description about:
- Run counters in parentheses (actually separate badges)
- Times shown only once (times can repeat for different runs)
Added Screenshot:
- schedule-indicators.png: Shows actual time slots with dots and badges
Enhanced workflow tip with specific actions for each indicator type.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Added important details about schedule learning and Daily Jobs display:
Information Jobs:
- Added explanation for jobs without schedules (SSL cert updates, etc.)
- Information jobs are irregular and never learn a schedule pattern
- Will not appear on Daily Jobs page
Daily Jobs Color Indicators:
- Green: Ran successfully today
- Red: Ran with failure today
- White: Expected later today (time hasn't arrived yet)
- Gray: Expected but overdue (time has passed, no run received)
Multiple Runs Per Day:
- Schedule shows time only once
- Run counter displays number of runs (e.g., "10:00 (3)")
- Helps track jobs that run multiple times daily
Added callouts explaining:
- Information jobs concept
- Run counter meaning and usage
- White vs. gray indicator significance
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Added documentation note about role-based column visibility:
Job History Table:
- "Reviewed by" column: Admin only
- "Reviewed at" column: Admin only
- Other columns visible to all roles with Jobs page access
Future Change Note:
- May be updated to show these columns to Operators as well
- Currently restricted to Admin role only
Added callout box explaining this restriction and potential future change.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Corrected documentation about archived jobs visibility:
Archived Jobs Access:
- No toggle/filter on Jobs page to show archived jobs
- Archived jobs are on a SEPARATE page
- Only accessible to Admin role (not Operators or Viewers)
- Separate menu item: "Archived Jobs"
Jobs Page:
- Shows only active jobs for active customers
- No option to view archived jobs on this page
- Archived jobs completely hidden from non-admin users
Unarchiving:
- Only admins can unarchive jobs
- Done from Archived Jobs page (not Jobs page)
- Unarchived jobs immediately reappear in operational views
Removed incorrect references to "Show archived jobs" toggle.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Corrected Jobs list and Job details page documentation:
Jobs List Table:
- Only 4 columns shown: Customer, Backup, Type, Job name
- Removed incorrect columns: Last Run, Status, Schedule, Actions
- Entire row is clickable (not just job name)
Job Details Page:
- Added comprehensive field descriptions:
- Customer, Backup, Type, Job name
- Tickets count (open/total)
- Remarks count (open/total)
- Schedule (inferred) with day/time table in 15-min blocks
- Archive button (gray)
- Delete job button (red)
Job History Table:
- Detailed column descriptions:
- Day run, Run time, Status (green dot for success)
- Tickets (with ticket numbers), Remarks, Override
- Reviewed by (username), Reviewed at (timestamp)
- Runs are clickable for full details
Removed:
- Job Status Indicators section (not shown in Jobs list)
- Incorrect Action buttons column
Added Screenshot:
- job-details.png: Shows complete job detail page with schedule and history
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Corrected documentation to reflect actual job detail functionality:
Job Detail Page:
- Can only Archive or Delete jobs
- Cannot edit job properties (customer, name, etc.)
- No edit function available on job detail page
Reassigning Jobs to Different Customer:
- Cannot change customer directly
- Must delete job to return emails to Inbox
- Re-approve from Inbox with correct customer selection
- Step-by-step process documented in Common Questions
Approved Jobs:
- Removed incorrect "Editing Job Information" section
- Replaced with "Job Detail Page" showing actual available actions
- Added warning that job properties cannot be edited
Configuring Jobs:
- Updated "Can I change the customer" question with correct process
- Emphasized delete-and-reapprove workflow
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Updated documentation to reflect that Mail Parsers can only be modified
by the system developer/maintainer, not by administrators:
- Configuring Jobs:
- Changed "parser must be updated (Admin only)" to "contact system developer/maintainer"
- Clarified parsers cannot be modified through BackupChecks UI
- Updated Common Questions section with same clarification
- Approved Jobs:
- Changed "Mail Parser configuration must be updated by administrator" to "contact system developer/maintainer"
- Added note that parsers are code-level components
Mail Parsers are Python code modules that require developer-level changes,
not configurable through the application interface.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Corrected job approval workflow based on actual UI:
Customer Selection:
- Customers CANNOT be created from Inbox
- Customers must be created on Customers page first
- Customer field has autocomplete with fuzzy matching
- Can type any part of customer name (e.g., "toso" finds "Contoso")
- "Select customer" placeholder text shown
- Approve job button only enabled when customer selected
Email Detail Modal:
- Added detailed field descriptions (From, Backup, Type, Job, Overall, etc.)
- Details panel shows parsed backup report content
- Success/failure status with color-coded header
- Backup statistics (start/end time, duration, size, compression)
- Catalog information and version details
- Approve job (blue), Delete (red), Close (gray) buttons
Added Screenshot:
- approve-job.png: Shows inbox email detail modal with customer selection
Removed incorrect information about automatic customer creation.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Corrected documentation to match actual customer management interface:
Customer Fields:
- Only customer name and active status (no contact fields)
- Customer name is not clickable
- Edit and Delete buttons on right side (no "Actions" column)
Edit Customer Dialog:
- Modal dialog with customer name and active checkbox
- Autotask mapping integrated in same dialog (not separate button)
- Search Autotask companies field with Search button
- Set mapping (blue), Refresh status (gray), Clear mapping (red) buttons
- Current mapping display with sync status timestamp
- Cancel and Save changes buttons
New Customer Interface:
- Simple form at top of page
- Only name field and Active checkbox
- Add button to create customer
- Browse... button for CSV file selection
- Import CSV and Export CSV buttons
- Refresh all Autotask mappings button
Added Screenshots:
- edit-customer.png: Shows edit dialog with Autotask mapping interface
- new-customers.png: Shows customer creation and CSV import/export controls
Removed incorrect information about contact person, email, phone, notes fields.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Added comprehensive documentation for customer and job management:
- Managing Customers:
- Customer creation with contact information
- Editing customer details
- Active/inactive status and impact on job visibility
- Autotask company mapping workflow with auto-search
- CSV export/import for backup and migration
- Delete operations with warnings
- Job count indicators (red/bold when zero)
- Configuring Jobs:
- Inbox-based approval workflow (cannot manually create jobs)
- Mail Parser automatic configuration of all job fields
- Reparse All functionality for batch processing
- Job archiving vs deletion
- Job lifecycle stages
- Common questions and limitations
- Approved Jobs:
- Jobs list overview with status indicators
- Job detail page information
- Editable vs parser-determined fields
- Archive/unarchive workflow
- JSON export/import via Settings > Maintenance
- Status indicators (success/failed/warning/no runs)
- Job Schedules:
- Automatic schedule learning from historical runs
- Schedule types (daily/weekly/monthly/irregular)
- Minimum data requirements (3-5 runs)
- Daily Jobs integration and expected run detection
- Schedule accuracy scenarios
- Troubleshooting schedule issues
All pages include tables, callouts, cross-references, and practical examples.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Added display: block to .doc-content img
- Changed margin from '20px 0' to '20px auto' for horizontal centering
- Images now centered like their figcaptions
- Applies to all documentation screenshots (user-management.png, user-settings.png)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Updated page description: only password change available in User Settings
- Added screenshot reference for user-settings.png
- Clarified theme selector location: navigation bar (between username and logout)
- Clarified role selector location: navigation bar (not in settings page)
- Simplified profile information: username and assigned roles (read-only)
- Removed non-existent Notification Preferences section
- Removed Session Information section (not displayed)
- Enhanced troubleshooting section with specific password change issues
- Maintained Data Privacy and Password sections
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Added captcha requirement (simple math problem) to login steps
- Noted future plan to make captcha optional via system setting
- Clarified HTTPS context for browser security:
- Only relevant for external access via domain name
- Not applicable for internal IP-based deployments
- Marked Mozilla Firefox as recommended browser (most tested)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Created placeholder pages for all 30 documentation pages across 9 sections
- Fixed content errors in getting-started pages based on user feedback:
- Corrected review process (all jobs reviewed, not just successful)
- Changed Autotask tickets from automatic to manual creation
- Updated mail import from IMAP to Graph API
- Fixed job creation workflow (from Inbox via Approve job, not manual)
- Added Reparse all functionality explanation
- Corrected Daily Jobs vs Run Checks distinction
- Added manual import recommendation before enabling automatic
- Added role-based menu visibility explanation
- Added news items feature explanation
- All navigation links now work without Internal Server Errors
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Created documentation blueprint (doc_bp) with routes and navigation
- Added documentation menu item (📖) to navbar for all users
- Implemented hierarchical navigation with 9 sections, 33 pages
- Created base layout with sidebar, breadcrumb, and prev/next navigation
- Added documentation.css with dark mode support
- Created first 3 getting-started pages (what-is-backupchecks, first-login, quick-start)
- Updated changelog
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Removed the scheduling placeholder card from the main reports page as
scheduling will be configured per individual report instead of having
an overarching setting.
Changes:
- Removed entire scheduling placeholder card (delivery, frequency, recipients)
- Updated card header subtitle to reflect that scheduling is per-report
- Report definitions table now uses full page width
- Cleaner, more focused UI
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Added explicit import for _log_admin_event function which is needed for
customer export/import audit logging. Functions with underscore prefix
are not automatically imported by 'from .routes_shared import *'.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit completes the audit logging expansion by adding comprehensive
logging for critical system operations:
- Settings: Log changes to General, Mail, and Autotask settings with
before/after values (passwords excluded for security)
- Exports: Log customer and jobs exports with format and record counts
- Imports: Log customer and jobs imports with operation statistics
Also updated UI to reflect "System Audit Log" nomenclature instead of
"Admin activity" for better semantic clarity.
All audit events use structured event_type identifiers and JSON details
for easy filtering and analysis.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The table name 'admin_logs' was misleading as it contains both admin actions
and automated system events. Renamed to 'audit_logs' to better reflect its
purpose as a comprehensive audit trail.
Changes:
- Renamed model: AdminLog → AuditLog (with backwards compatibility alias)
- Database migration: Renames admin_logs table to audit_logs (idempotent)
- Updated admin_logging.py: log_admin_event → log_audit_event (with alias)
- Updated imports in routes_core.py and routes_shared.py
- Updated all references to use AuditLog instead of AdminLog
- Backwards compatibility maintained via aliases for smooth transition
This is part 1 of audit logging expansion.
Part 2 will add logging for settings changes and export/import actions.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The filter now accepts both datetime objects and string representations.
This fixes AttributeError when datetime fields are stored/returned as
strings instead of datetime objects from the database.
Changes:
- Added string parsing logic for common datetime formats
- Tries multiple format patterns (ISO, standard, with/without microseconds)
- Returns original string if parsing fails (graceful degradation)
- Maintains full datetime object support
Fixes errors on:
- /customers (autotask_last_sync_at)
- /logging (created_at)
- /admin/all-mail (received_at, parsed_at)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Extended both customer and jobs export/import to preserve Autotask
company mappings during data migration and system reset workflows.
Changes:
- Customer export (CSV): Added autotask_company_id and autotask_company_name columns
- Customer import (CSV): Reads and applies Autotask mapping fields, resets sync status
- Jobs export (JSON): Includes Autotask fields in customers array
- Jobs import (JSON): Processes customers array with Autotask mappings before jobs
- Backwards compatible: Old exports without Autotask fields continue to work
- Import feedback: Shows both created and updated customer counts
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Split Autotask settings into two separate forms with dedicated save
buttons and field validation:
1. Autotask Settings form:
- Save button inside card for better UX
- Required fields: Environment, Username, Password (if not set),
Tracking Identifier, Base URL
- Red asterisks indicate required fields
2. Ticket Defaults form:
- Separate save button inside card
- Required fields: Queue, Ticket Source, Status, Priority Warning,
Priority Error
- Prevents saving incomplete configurations
Benefits:
- Clear visual separation of concerns
- Prevents accidental saving of empty values
- HTML5 validation ensures all required fields are filled
- Better user experience with focused save actions
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>