Add v0.1.23 to website changelog

Added v0.1.23 entry to changelog.py with structured Python format:
- Documentation System (Core Infrastructure, 13 completed pages, accuracy improvements)
- Audit Logging (Renaming to AuditLog, expanded event coverage)
- Timezone-Aware Display (local_datetime filter, all pages updated)
- Autotask Improvements (usability, settings organization, data portability)
- Environment Identification (sandbox banner feature)
- Job Visibility Filtering (archived/inactive customer filtering)
- Repository Security (.gitignore for .claude directory)
- Bug Fixes (imports, datetime handling, documentation corrections)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Ivo Oskamp 2026-02-09 09:35:39 +01:00
parent cdbb45fcfb
commit 7a3c8c9c51
2 changed files with 206 additions and 0 deletions

View File

@ -3,6 +3,211 @@ Changelog data structure for Backupchecks
""" """
CHANGELOG = [ CHANGELOG = [
{
"version": "v0.1.23",
"date": "2026-02-09",
"summary": "This comprehensive release introduces a complete built-in documentation system with 33 pages covering all features, enhanced audit logging for compliance and troubleshooting, timezone-aware datetime display throughout the application, and numerous Autotask PSA integration improvements for better usability and workflow efficiency.",
"sections": [
{
"title": "Documentation System Complete Built-in Wiki",
"type": "feature",
"subsections": [
{
"subtitle": "Core Infrastructure",
"changes": [
"New /documentation route with dedicated blueprint (doc_bp) accessible via 📖 icon in main navbar",
"Hierarchical structure with 9 sections and 33 pages covering all application features",
"Sidebar navigation with collapsible sections, active page highlighting, and sticky positioning during scrolling",
"Breadcrumb navigation for current location context",
"Previous/Next pagination buttons for sequential reading",
"Custom CSS (documentation.css) with dark mode support via CSS variables",
"Callout boxes (info, warning, tip, danger) for highlighting important content",
"Support for code blocks, tables, images (centered horizontally), and responsive design",
"Login required but accessible to all user roles",
"Full content includes comprehensive screenshots, workflow examples, troubleshooting guides, and best practices"
]
},
{
"subtitle": "Completed Documentation Sections (13 pages)",
"changes": [
"Getting Started (3 pages): What is BackupChecks, First Login, Quick Start Guide",
"User Management (3 pages): Users & Roles, Login & Authentication, Profile Settings",
"Customers & Jobs (4 pages): Managing Customers, Configuring Jobs, Approved Jobs, Job Schedules",
"Mail & Import (4 pages): Setup with Graph API and security best practices, Inbox Management with approval workflow, Mail Parsing with supported software list, Auto-Import Configuration with timer settings",
"Backup Review (5 pages): Complete 7-stage lifecycle workflow, Daily Jobs with schedule inference, Run Checks Modal as primary operational tool, Overrides & Exceptions with global and object-level rules, Remarks & Tickets with scoping and Autotask integration",
"Remaining 20 pages created with placeholders for future content (Reports, Autotask Integration, Settings, Troubleshooting)"
]
},
{
"subtitle": "Documentation Accuracy Improvements",
"changes": [
"Corrected critical inaccuracies in Backup Review workflow based on user feedback",
"Clarified Run Checks is the primary daily operational tool (not Daily Jobs)",
"Emphasized all runs must be reviewed regardless of status (including successful runs)",
"Corrected review mechanism from per-run to per-job (marking one job reviews all its runs)",
"Updated override status indicators to show blue badges (not green) for differentiation",
"Fixed various feature descriptions to match actual UI behavior (EML links, customer selection workflow, parser management restrictions)",
"Removed non-existent features: individual email re-parse in modal, parser enable/disable UI, AI-powered parsing, Inbox filters section",
"Enhanced Mail Import Setup with comprehensive security best practices including Application Access Policy to restrict to one mailbox"
]
}
]
},
{
"title": "Audit Logging Enhancements",
"type": "improvement",
"subsections": [
{
"subtitle": "System Renaming and Semantic Clarity",
"changes": [
"Renamed AdminLog to AuditLog for better semantic clarity across codebase",
"Updated model name: AdminLog → AuditLog (backwards compatible alias maintained)",
"Updated table name: admin_logs → audit_logs (automatic migration)",
"Updated function: log_admin_event() → log_audit_event() (alias provided for compatibility)",
"Updated UI labels: \"Admin activity\"\"System Audit Log\" in logging page header",
"Better reflects purpose as comprehensive audit trail for both user and system events"
]
},
{
"subtitle": "Expanded Event Coverage for Compliance",
"changes": [
"Settings Changes: Now logs all changes to General, Mail, and Autotask settings with old → new value comparison",
"Event types: settings_general, settings_mail, settings_autotask",
"Excludes sensitive data (passwords are never logged)",
"Example logged fields: ui_timezone, require_daily_dashboard_visit, is_sandbox_environment, graph_mailbox, autotask_enabled",
"Export Operations: Logs Customers export (CSV format, record count) and Jobs export (JSON schema version, customer/job counts)",
"Import Operations: Logs Customers import (created/updated/skipped counts) and Jobs import (customer and job operation counts)",
"All logging uses structured event_type for filtering and analysis",
"Detailed JSON in details field for complete audit trail",
"Maintains 7-day retention policy for performance",
"No performance impact (async logging)",
"Helps with compliance audits, security monitoring, and troubleshooting configuration issues"
]
}
]
},
{
"title": "Timezone-Aware Datetime Display",
"type": "improvement",
"changes": [
"Added local_datetime Jinja2 template filter to convert UTC datetimes to configured UI timezone",
"All datetime fields now automatically display in configured timezone (Settings > General > UI Timezone)",
"Database values remain stored in UTC for consistency and reliability",
"Affected Pages: Customers (Autotask last sync), Settings (reference data sync), Feedback, Logging, Overrides, Archived Jobs, Tickets, Remarks, Inbox, Job Detail, Admin Mail",
"Custom format support via strftime parameter (e.g., |local_datetime('%d-%m-%Y %H:%M'))",
"Enhanced filter to handle both datetime objects and string datetime values for flexibility",
"Graceful fallback to UTC display if timezone conversion fails",
"Default timezone: Europe/Amsterdam (configurable via SystemSettings.ui_timezone)",
"Improves operator experience by showing times in local context"
]
},
{
"title": "Autotask PSA Integration Improvements",
"type": "improvement",
"subsections": [
{
"subtitle": "Usability Enhancements",
"changes": [
"Added \"Open in Autotask\" button in Run Checks modal for direct navigation to tickets in Autotask PSA (opens in new tab with proper URL)",
"Button only appears when ticket is linked and Autotask integration is enabled",
"Added collapsible text functionality (ellipsis-field) to \"Overall remark\" and \"Remark\" fields to prevent long text from hiding action buttons",
"Auto-load Autotask reference data when opening Settings page (queues, sources, statuses, priorities)",
"Only triggers when Autotask is enabled, credentials configured, and cache is empty",
"Eliminates need to manually click \"Refresh reference data\" before selecting defaults",
"Displays info message with loaded data counts",
"Renamed \"Refresh\" button to \"Search\" in Link existing ticket modal for better clarity"
]
},
{
"subtitle": "Settings Organization and Validation",
"changes": [
"Reorganized Autotask settings into two separate forms with dedicated save buttons",
"Autotask Settings form (connection, environment, credentials) with \"Save Autotask Settings\" button",
"Ticket Defaults form (queue, source, status, priority) with \"Save Ticket Defaults\" button",
"Clear visual separation improves UX and prevents accidental incomplete saves",
"All fields marked as required with red asterisks (*)",
"HTML5 validation prevents saving incomplete configurations",
"Protected default Ticket Status value against accidental clearing",
"Only updates when valid status selected, preserves existing value if dropdown empty",
"Fixes issue where \"Create Autotask ticket\" failed due to missing default status"
]
},
{
"subtitle": "Data Portability and Migration Support",
"changes": [
"Extended Customer CSV export/import to include autotask_company_id and autotask_company_name columns",
"Import reads Autotask mapping fields and applies them to existing or new customers",
"Backwards compatible - old CSV files without Autotask columns still work",
"Import resets autotask_mapping_status and autotask_last_sync_at for resynchronization",
"Extended Jobs JSON export/import to include Autotask fields in customers array",
"Schema remains approved_jobs_export_v1 for backwards compatibility",
"Import message shows both created and updated customer counts",
"Enables preservation of Autotask company mappings during system reset/migration workflows",
"Critical for disaster recovery and environment promotion (dev → test → production)"
]
}
]
},
{
"title": "Environment Identification and Safety",
"type": "feature",
"changes": [
"Added visual banner system to distinguish non-production environments and prevent accidental actions",
"New is_sandbox_environment boolean column in SystemSettings model (defaults to False for production safety)",
"Database migration migrate_system_settings_sandbox_environment() for automatic schema update (idempotent)",
"Settings UI with new \"Environment\" card in Settings > General with toggle switch",
"CSS styling via sandbox.css: diagonal red banner in top-left corner displaying \"SANDBOX\"",
"Position: top-left corner, rotated 45 degrees with letter-spacing for visibility",
"Color: Bootstrap danger red (#dc3545) with white text and box-shadow for depth",
"Z-index: 9999 (always on top, visible across all pages)",
"pointer-events: none - banner non-interactive, elements behind remain clickable",
"Banner conditionally displayed only when setting is enabled",
"Banner placed in base template directly after <body> tag, before navbar",
"Helps prevent accidental production-like actions in test/development systems"
]
},
{
"title": "Job Visibility and Filtering Improvements",
"type": "improvement",
"changes": [
"Jobs from archived jobs and inactive customers no longer appear in Daily Jobs, Run Checks, and Jobs list pages",
"Added customer active status filtering to all job list queries in backend",
"Jobs now filtered where customer is NULL or active=True alongside existing archived=False filter",
"Prevents showing jobs with \"-\" status from deleted customers or archived jobs",
"Reduces clutter in operational views and improves focus on active jobs",
"Improves query performance by reducing result set size"
]
},
{
"title": "Repository Management and Security",
"type": "improvement",
"changes": [
"Added .gitignore file to protect confidential .claude directory",
"Directory contains AI assistant context, memory files, and user-specific configuration",
"Prevents accidental commits of sensitive information to version control",
"Protects user privacy and prevents repository pollution with local-only data"
]
},
{
"title": "Bug Fixes and Stability Improvements",
"type": "fixed",
"changes": [
"Fixed missing import for _log_audit_event in routes_customers (resolved crash during customer operations)",
"Enhanced local_datetime filter to handle string datetime values in addition to datetime objects",
"Prevents template rendering errors when datetime is stored as string",
"Fixed callout box formatting throughout documentation (corrected CSS specificity)",
"Centered all documentation images horizontally (display: block, margin: 20px auto)",
"Removed fabricated features from documentation (AI-powered parsing, Inbox filters, parser management UI)",
"Corrected workflow descriptions to match actual UI implementation",
"Fixed customer selection workflow (job name read-only during approval)",
"Fixed email detail modal layout documentation (two-column: left metadata/actions/objects, right email iframe)",
"Updated status badge colors to match actual behavior (blue for overrides, green for genuine successes)",
"Fixed per-job review mechanism documentation (marking one job reviews all its runs)",
"Corrected bulk review from \"select run checkboxes\" to \"select job checkboxes\""
]
}
]
},
{ {
"version": "v0.1.22", "version": "v0.1.22",
"date": "2026-02-05", "date": "2026-02-05",

View File

@ -6,6 +6,7 @@ This file documents all changes made to this project via Claude Code.
### Changed ### Changed
- Updated `docs/changelog.md` with comprehensive v0.1.23 release notes consolidating all changes from 2026-02-06 through 2026-02-08 (Documentation System, Audit Logging, Timezone-Aware Display, Autotask Improvements, Environment Identification, Bug Fixes) - Updated `docs/changelog.md` with comprehensive v0.1.23 release notes consolidating all changes from 2026-02-06 through 2026-02-08 (Documentation System, Audit Logging, Timezone-Aware Display, Autotask Improvements, Environment Identification, Bug Fixes)
- Updated `containers/backupchecks/src/backend/app/changelog.py` with v0.1.23 entry in Python structure for website display (8 sections with subsections matching changelog.md content)
## [2026-02-08] ## [2026-02-08]