diff --git a/.last-branch b/.last-branch index dfbc804..5e9dd4a 100644 --- a/.last-branch +++ b/.last-branch @@ -1 +1 @@ -v20260320-01-cloud-connect-row-click-modal +v20260320-02-cove-historical-runs-and-detail diff --git a/containers/backupchecks/src/backend/app/changelog.py b/containers/backupchecks/src/backend/app/changelog.py index 573f4bd..3524256 100644 --- a/containers/backupchecks/src/backend/app/changelog.py +++ b/containers/backupchecks/src/backend/app/changelog.py @@ -3,6 +3,78 @@ Changelog data structure for Backupchecks """ CHANGELOG = [ + { + "version": "v0.2.0", + "date": "2026-03-20", + "summary": "This release is a significant update since v0.1.27 (released on February 23, 2026). It introduces a completely redesigned sidebar-first UI, a new Veeam Cloud Connect importer, Run Checks user preferences, and multiple Cove Data Protection improvements including historical run backfill and a run detail popup. Several bug fixes and UX refinements are included across the board.", + "sections": [ + { + "title": "Added", + "type": "feature", + "subsections": [ + { + "subtitle": "Veeam Cloud Connect", + "changes": [ + "New Veeam Cloud Connect importer — HTML parser for daily report emails; upserts tenant rows into cloud_connect_accounts and creates JobRun records for linked accounts", + "Cloud Connect Accounts page (/cloud-connect/accounts): unmatched accounts first, matched accounts below; clickable-row UX with a single shared modal (pre-fills job name, backup type, customer)", + "CloudConnectAccount model and migration added", + "Sidebar link added for admin/operator roles" + ] + }, + { + "subtitle": "Cove Data Protection", + "changes": [ + "Historical run backfill: when a new run is created for a linked job, up to 27 days of history are reconstructed from the colorbar field (D09F08); fully idempotent via external_id deduplication", + "Cove run details popup: Cove run rows in the job detail history table are now clickable; popup shows account name, computer, customer, datasource labels, last run, and status; mail section hidden for Cove runs", + "Cove Accounts page: same clickable-row UX as Cloud Connect with a single shared modal and customer datalist auto-complete" + ] + }, + { + "subtitle": "Run Checks and Settings", + "changes": [ + "Run Checks user preferences (per user): sort mode and filter defaults (status, ticket, remark, search query) stored in DB and applied on page load", + "New route POST /run-checks/preferences to save current controls as user defaults; User Settings page includes a dedicated section", + "Login captcha toggle in Settings → General Security card: when disabled, the math captcha is hidden and not validated; migration adds column with DEFAULT TRUE" + ] + } + ] + }, + { + "title": "Changed", + "type": "improvement", + "subsections": [ + { + "subtitle": "Layout v2", + "changes": [ + "Complete sidebar-first redesign: layout.css rewritten with IBM Plex Sans/Mono fonts and CSS design tokens; fixed dark sidebar (220 px)", + "base.html updated with Google Fonts preload and sidebar-aware structure" + ] + }, + { + "subtitle": "Performance and UX", + "changes": [ + "Run Checks background sweep: missed-run generation and Autotask ticket polling now run in a background daemon thread on page load, throttled per job (10-minute minimum interval)", + "Cloud Connect run detail popup now shows a structured CC summary (account, repository, objects) instead of the raw report email; raw email accessible via a show toggle", + "Cloud Connect unique key changed from (user, section) to (user, section, repo_name) so users with multiple repositories each get a separate staging entry", + "Cove timestamp parsing now supports epoch milliseconds, microseconds, nanoseconds, and .NET JSON Date strings", + "Sandbox banner is now semi-transparent instead of solid red" + ] + } + ] + }, + { + "title": "Fixed", + "type": "bugfix", + "changes": [ + "Login page layout no longer breaks when flash messages are present", + "Delete all jobs in Settings → Maintenance no longer times out on large datasets (direct SQL DELETE FROM statements; handles 650K+ rows in seconds)", + "Automatic mail-to-job matching no longer selects archived jobs", + "Cove run creation transaction scope fixed (FK/visibility issue with second DB connection)", + "Cove link sync between both link paths (cove_accounts.job_id and jobs.cove_account_id)" + ] + } + ] + }, { "version": "v0.1.27", "date": "2026-02-23",