Commit Graph

267 Commits

Author SHA1 Message Date
855e5e2aac Auto-commit local changes before build (2026-03-20 16:09:04) 2026-03-20 16:09:04 +01:00
6998b3aa7d Auto-commit local changes before build (2026-03-20 15:51:54) 2026-03-20 15:51:54 +01:00
7ae04c59fe Auto-commit local changes before build (2026-03-20 15:09:58) 2026-03-20 15:09:58 +01:00
5fdf0f130b Auto-commit local changes before build (2026-03-20 15:01:28) 2026-03-20 15:01:28 +01:00
c5a6759112 Auto-commit local changes before build (2026-03-20 14:53:36) 2026-03-20 14:53:36 +01:00
d1e1ef9d16 Add v0.2.0 changelog entry (minor bump since v0.1.27)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 14:06:36 +01:00
c2b5fa7b2e Cove: historical run backfill, run detail popup, and docs update
- cove_importer.py: add _backfill_colorbar_runs() to reconstruct up to
  27 days of history from the D09F08 28-day colorbar when a new run is
  created; idempotent via external_id deduplication
- routes_cove.py: add GET /cove/run/<run_id>/detail endpoint returning
  structured Cove account info and per-datasource objects for popups
- routes_run_checks.py: add cove_summary to run payload for cove_api runs
  with readable datasource labels; hide mail section for Cove runs
- routes_jobs.py: add source_type to history_rows dict
- job_detail.html: Cove run rows clickable; JS routes to cove_run_detail;
  Cove summary panel added, mail section hidden for Cove runs
- run_checks.html: Cove summary panel added; JS handles cove_summary
- technical-notes-codex.md: document new route, popup behaviour, and
  historical backfill

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 14:01:36 +01:00
b4c1ec0bf3 Update changelog with login page layout fix details
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 13:57:00 +01:00
ac9c7ba280 Auto-commit local changes before build (2026-03-20 13:12:46) 2026-03-20 13:12:46 +01:00
4dff0303a3 Auto-commit local changes before build (2026-03-20 12:57:55) 2026-03-20 12:57:55 +01:00
0cbd3e59b1 Auto-commit local changes before build (2026-03-20 12:13:27) 2026-03-20 12:13:27 +01:00
22a12348cb Auto-commit local changes before build (2026-03-20 12:02:04) 2026-03-20 12:02:04 +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
461c46b0ff Auto-commit local changes before build (2026-03-20 09:56:22) 2026-03-20 09:56:22 +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
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
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
eff1cb3700 Update Claude changelog for Run Checks follow-up fixes 2026-02-27 10:33:41 +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
8deecd4c11 Update technical-notes-codex.md with Cove integration and recent changes
- Add complete Cove Data Protection integration section: API details,
  column codes, status mapping, inbox flow, CoveAccount model, routes,
  migrations, background thread, settings UI
- Update Data Model section: CoveAccount model, Job.cove_account_id,
  JobRun.source_type + external_id, SystemSettings Cove fields
- Update Application Architecture: cove_importer_service background thread
- Add debug logging snippet for ticket linking issues
- Add Recent Changes entry for 2026-02-23
- Add Cove files to Quick References

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 10:49:44 +01:00
9b19283c97 Add Cove Accounts inbox-style flow for linking accounts to jobs
- CoveAccount staging model: all Cove accounts upserted from API;
  unmatched accounts visible on /cove/accounts before job linking
- cove_importer.py: always upserts accounts, creates JobRuns only for
  accounts with a linked job (deduplication via external_id)
- routes_cove.py: GET /cove/accounts, POST link/unlink routes
- cove_accounts.html: inbox-style page with Bootstrap modals for
  creating new jobs or linking to existing ones
- Nav bar: Cove Accounts link for admin/operator when cove_enabled
- DB migration: migrate_cove_accounts_table() for staging table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 10:40:54 +01:00
c045240001 Add manual Cove import trigger (Run import now button)
- New route POST /settings/cove/run-now calls run_cove_import()
  directly and shows result as flash message
- Settings > Integrations > Cove: "Run import now" button visible
  when partner_id is known (connection confirmed)
- Status bar shows partner ID, last import timestamp or "No import yet"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 10:28:33 +01:00
2f1cc20263 Add Cove Data Protection full integration
- New models: SystemSettings gets 8 cove_* fields, Job gets
  cove_account_id, JobRun gets source_type and external_id
- Migration migrate_cove_integration() adds all new DB columns and
  a deduplication index on job_runs.external_id
- cove_importer.py: Cove API login, paginated EnumerateAccountStatistics,
  deduplication via external_id, JobRun creation, per-datasource
  run_object_links persistence (Files&Folders, VssMsSql, M365, etc.)
- cove_importer_service.py: background thread, same pattern as
  auto_importer_service, respects cove_import_interval_minutes
- __init__.py: starts cove_importer thread on app startup
- routes_settings.py: Cove form handling (POST), has_cove_password
  variable, new AJAX route /settings/cove/test-connection
- routes_jobs.py: new route /jobs/<id>/set-cove-account,
  cove_enabled passed to job_detail template
- settings.html: Cove card in Integrations tab with AJAX test button
- job_detail.html: Cove Integration card with Account ID input

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 10:13:34 +01:00
6d086a883f Add Cove API test script and update documentation with N-able support findings
- Add standalone cove_api_test.py to verify new D9Fxx/D10Fxx/D11Fxx column codes
- D02/D03 confirmed as legacy by N-able support; D9/D10/D11 should work
- Document session status codes (F00) and timestamp fields (F09/F15/F18)
- Update TODO and knowledge docs with breakthrough status

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 09:08:41 +01:00
f35ec25163 Update technical notes for 3CX and remark alerts behavior 2026-02-19 14:22:32 +01:00
38f0f8954e Fix remark visibility in run alerts 2026-02-19 14:14:44 +01:00
ea244193e0 Hide non-backup 3CX informational jobs from Run Checks 2026-02-19 13:44:46 +01:00
441f5a8e50 Handle 3CX update mails as informational runs 2026-02-19 13:27:52 +01:00
3c629bb664 Polish changelog wording for 2026-02-16 and 2026-02-19 2026-02-19 13:04:49 +01:00
53b028ef78 Add optional Autotask ID import toggle 2026-02-19 12:56:45 +01:00
1fb99dc6e7 Update technical notes for search remarks and filters 2026-02-16 16:59:33 +01:00
652da5e117 Add remarks to global search results 2026-02-16 16:57:51 +01:00
c8e7491c94 Add Daily Jobs note to search results 2026-02-16 16:54:26 +01:00
b46010dbc2 Forward global search filters to overview pages 2026-02-16 16:49:47 +01:00
f90b2bdcf6 Keep search pagination at current section 2026-02-16 16:32:23 +01:00
fcbf67aeb3 Update technical notes for latest search improvements 2026-02-16 16:28:49 +01:00
ded71cb50f Improve daily jobs search metadata and modal link 2026-02-16 16:26:56 +01:00
8a8f957c9f Add per-section pagination to global search 2026-02-16 16:19:26 +01:00
8c29f527c6 Document search template crash fix 2026-02-16 16:10:31 +01:00
79933c2ecd Update technical notes for global search 2026-02-16 16:08:29 +01:00
7476ebcbe3 Add role-aware global grouped search 2026-02-16 16:05:47 +01:00
189dc4ed37 Update technical notes for customer jobs filter 2026-02-16 15:26:51 +01:00
dca117ed79 Add customer-to-jobs filtering navigation 2026-02-16 15:12:10 +01:00
ecdb331c9b Update technical documentation with detailed system knowledge
Enhanced technical-notes-codex.md with comprehensive details from Claude's
system knowledge document, including:

Ticketing & Autotask:
- Detailed two-ticket system explanation (internal vs Autotask)
- Complete ticket propagation strategies (Strategy 1 & 2)
- Where ticket linking is called (email-based, missed runs)
- Display logic with two-source approach
- Resolved vs Deleted distinction
- All critical rules and anti-patterns

Database Models:
- Complete model listing
- Foreign key relationships and critical deletion order
- Key model fields documentation

UI & UX:
- Detailed navbar behavior
- Status badge color coding
- Complete ticket copy functionality with three-tier fallback
- Checkbox autocomplete behavior

Parser Architecture:
- Parser types (Informational vs Regular)
- Synology Updates parser example
- Schedule learning behavior

Recent Changes:
- Documented 2026-02-13 fixes (missed run ticket linking, checkbox autoselect)
- Documented 2026-02-12 fixes (Run Checks modal, Edge copy button)
- Documented 2026-02-10 changes (screenshot support, link-based system)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13 13:36:03 +01:00