Commit Graph

424 Commits

Author SHA1 Message Date
5eb8aeeba6 Auto-commit local changes before build (2026-03-20 13:16:06) 2026-03-20 13:16:06 +01:00
ac9c7ba280 Auto-commit local changes before build (2026-03-20 13:12:46) 2026-03-20 13:12:46 +01:00
bd2e71cd62 Auto-commit local changes before build (2026-03-20 13:04:24) 2026-03-20 13:04:24 +01:00
4dff0303a3 Auto-commit local changes before build (2026-03-20 12:57:55) 2026-03-20 12:57:55 +01:00
ad9611e862 Auto-commit local changes before build (2026-03-20 12:18:18) 2026-03-20 12:18:18 +01:00
0cbd3e59b1 Auto-commit local changes before build (2026-03-20 12:13:27) 2026-03-20 12:13:27 +01:00
fb841fb4e6 Auto-commit local changes before build (2026-03-20 12:04:24) 2026-03-20 12:04:24 +01:00
22a12348cb Auto-commit local changes before build (2026-03-20 12:02:04) 2026-03-20 12:02:04 +01:00
6dfbab3354 Auto-commit local changes before build (2026-03-20 11:47:41) 2026-03-20 11:47:41 +01:00
924a012a7d Auto-commit local changes before build (2026-03-20 11:39:05) 2026-03-20 11:39:05 +01:00
e46d4be1c2 Auto-commit local changes before build (2026-03-20 11:36:15) 2026-03-20 11:36:15 +01:00
c7021d393d Auto-commit local changes before build (2026-03-20 11:31:49) 2026-03-20 11:31:49 +01:00
44214cc2c6 Auto-commit local changes before build (2026-03-20 11:04:11) 2026-03-20 11:04:11 +01:00
af84039daf Auto-commit local changes before build (2026-03-20 10:22:35) 2026-03-20 10:22:35 +01:00
461c46b0ff Auto-commit local changes before build (2026-03-20 09:56:22) 2026-03-20 09:56:22 +01:00
5da3137adc Auto-commit local changes before build (2026-03-20 09:37:26) 2026-03-20 09:37:26 +01:00
702de68098 Auto-commit local changes before build (2026-03-20 09:36:17) 2026-03-20 09:36:17 +01:00
56f904bde3 Fix Cloud Connect accounts page: serialize customers as dicts for tojson
Pass customer_rows (list of {id, name} dicts) instead of SQLAlchemy
objects so the Jinja tojson filter can serialize them in JavaScript.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 09:00:51 +01:00
e3c7a5ddac Cloud Connect: clickable rows with shared modal (Inbox-style UX)
- Remove per-row Link/Create Job button and inline modals
- Make unmatched rows clickable to open a single shared modal
- Create new job tab: customer via datalist (auto-complete),
  job name and backup type shown read-only (derived from user/section)
- Route: derive job_name and backup_type server-side, not from form

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 08:58:18 +01:00
4eac589625 Cloud Connect: add scan-inbox to process existing inbox mails
- POST /cloud-connect/accounts/scan-inbox: queries all inbox mails with
  backup_type 'cloud connect report', calls upsert_cloud_connect_report()
  for each, flashes a summary of accounts upserted and runs created
- 'Scan inbox mails' button added to Cloud Connect Accounts page header

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 17:17:14 +01:00
ea134f49f3 Add Veeam Cloud Connect importer (inbox-style staging flow)
- cloud_connect_importer.py: parse Cloud Connect daily report HTML,
  upsert tenant rows into cloud_connect_accounts, create JobRuns for
  linked accounts (deduped via external_id)
- routes_cloud_connect.py + cloud_connect_accounts.html: inbox-style
  review page with create/link/unlink actions (mirrors Cove flow)
- CloudConnectAccount model: staging table unique on user × section
- migrate_cloud_connect_accounts_table(): creates table + indexes,
  registered in run_all_migrations()
- mail_importer.py: detect btype=="cloud connect report", call
  upsert_cloud_connect_report(), auto-approve on success
- base.html: sidebar link "Cloud Connect" for admin/operator

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 17:13:58 +01:00
7a8f1aa4e5 Remove light mode and theme switcher: dark mode only
- base.html: hardcode data-bs-theme="dark", remove theme detection JS
  and theme selector form from sidebar footer
- layout.css: replace dark/light theme selectors with unconditional
  dark background for .bc-main

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 16:24:02 +01:00
5163ca7b4a Layout v2 template fixes: style blocks and heading levels
- inbox.html, admin_all_mail.html: move <style> block into {% block head %}
  (styles outside Jinja blocks are silently dropped in template inheritance)
- feedback.html, feedback_detail.html, feedback_new.html, user_settings.html:
  replace <h1 class="h4"> with <h2> to match app-wide heading convention

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 16:00:33 +01:00
96e4e8c143 Dashboard redesign: bc-stat-grid with colored values
- Replace Bootstrap display-6 stats with bc-stat-grid layout:
  Inbox card spans 2 columns; status values colored by type
  (success=green, warning=yellow, failed=red, override=blue, muted=grey)
- Fix extra </div> that caused large empty space below stats
- Compact Legend to horizontal flex-wrap row
- Move System status card above description text
- Shorten description to 3 paragraphs
- Add bc-stat-grid / bc-stat-card CSS to layout.css

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:48:11 +01:00
e39e5359a6 Layout v2 template cleanup: remove container wrappers, fix changelog offset
- settings_orphaned_jobs.html: remove outer container-fluid div (bc-content
  already provides padding in the new sidebar layout)
- changelog.html: reduce sticky-top offset from 80px to 24px (no topnav
  anymore, only sidebar)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:38:33 +01:00
a4d85a6d74 Use favicon as sidebar logo icon
Replace placeholder SVG grid with the actual favicon.ico image.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:32:47 +01:00
1e11b3b424 Fix Jinja2 macros undefined error: move macro definitions before first use
Icon and nav macros were defined after </html> but called earlier in the
template. Jinja2 processes macros sequentially, so moved all macro
definitions to the top of base.html before the <!doctype html> tag.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:29:38 +01:00
89f7506763 Layout v2: sidebar-first design + background sweep + Cove improvements
- Redesign layout to fixed dark sidebar (220px) with IBM Plex Sans/Mono
  fonts and CSS design tokens; full rewrite of layout.css and base.html
- Move missed-run generation and Autotask ticket polling to a daemon
  background thread on Run Checks page load (throttled per job, 10 min)
- Cove manual import now logs and shows per-skip-reason breakdown
- Cove timestamp parser handles ms/us/ns epochs and .NET /Date(ms)/ strings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:15:50 +01:00
2ebe7d8aed Exclude archived jobs from auto mail matching 2026-03-12 14:44:44 +01:00
ec3a338170 Fix Cove link sync for run import 2026-03-02 16:50:20 +01:00
2200b0cb00 Fix Cove run creation transaction scope 2026-03-02 16:46:44 +01:00
cede08bb31 Remove Run Checks search field from UI 2026-02-27 10:20:47 +01:00
98567f8d05 Fix Run Checks query overwrite breaking filters and sort 2026-02-27 10:19:46 +01:00
2e6ff18878 Add per-user Run Checks sort and filter preferences 2026-02-27 10:15:04 +01:00
ea7c5e29c5 Add v0.1.27 release notes to changelog files 2026-02-23 15:39:04 +01:00
9ecbbdd523 Update technical docs and stop tracking Python cache artifacts 2026-02-23 15:13:18 +01:00
a450817b78 Show Customers and Jobs on navbar for Viewer role 2026-02-23 15:06:54 +01:00
03de2d294c Adjust navbar: keep Cove Accounts visible and move Daily Jobs to More 2026-02-23 15:03:48 +01:00
7905e988c7 Compress navbar with More dropdown for non-admin links 2026-02-23 15:00:40 +01:00
abd98f5bc6 Move admin-only navbar links into Admin dropdown and revert forced collapse 2026-02-23 14:57:35 +01:00
2cd704182c Force navbar collapse on split-screen desktop widths 2026-02-23 14:52:44 +01:00
40ffe3656e Fix navbar overflow on split-screen desktop layouts 2026-02-23 14:41:11 +01:00
8e847e802b Mark Entra SSO docs as untested in Backupchecks 2026-02-23 14:36:31 +01:00
b992d6382a Add Entra security group access restriction for SSO 2026-02-23 14:30:42 +01:00
6bf81bd730 Add documentation page for Microsoft Entra SSO setup 2026-02-23 14:23:15 +01:00
5274286c04 Add Microsoft Entra SSO authentication flow 2026-02-23 14:20:22 +01:00
47bb4ee4f0 Deduplicate Cove runs per job instead of globally 2026-02-23 12:15:18 +01:00
8fe3f99e40 Improve linked Cove import feedback and timestamp fallback 2026-02-23 12:04:43 +01:00
f68f92e63a Trigger immediate Cove import on link and enrich run details 2026-02-23 11:57:39 +01:00
06abd8c7a3 Fix Cove workstation/server type heuristic 2026-02-23 11:17:38 +01:00