Update technical notes for 3CX and remark alerts behavior
This commit is contained in:
parent
6f2f7b593b
commit
f35ec25163
@ -1,6 +1,6 @@
|
||||
# Technical Notes (Internal)
|
||||
|
||||
Last updated: 2026-02-16
|
||||
Last updated: 2026-02-19
|
||||
|
||||
## Purpose
|
||||
Internal technical snapshot of the `backupchecks` repository for faster onboarding, troubleshooting, and change impact analysis.
|
||||
@ -121,7 +121,8 @@ Critical deletion order to avoid constraint violations:
|
||||
- DSM Updates, Account Protection, Firmware Updates
|
||||
- Set appropriate backup_type (e.g., "Updates", "Firmware Update")
|
||||
- Do NOT participate in schedule learning
|
||||
- Still visible in Run Checks for awareness
|
||||
- Usually still visible in Run Checks for awareness
|
||||
- Exception: non-backup 3CX informational types (`Update`, `SSL Certificate`) are hidden from Run Checks
|
||||
|
||||
**Regular Parsers:**
|
||||
- Backup jobs (Veeam, Synology Active Backup, NAKIVO, etc.)
|
||||
@ -202,7 +203,10 @@ All pages use **explicit link-based queries** (no date-based logic):
|
||||
2. Job-level scope: `tickets JOIN ticket_scopes WHERE job_id = Y AND resolved_at IS NULL AND active_from_date <= run_date`
|
||||
- Prevents duplicates by tracking seen ticket IDs
|
||||
- Shows newly created tickets immediately (via scope) without waiting for resolve action
|
||||
- Same for remarks: `remarks JOIN remark_job_runs WHERE job_run_id = X`
|
||||
- **Two-source remark display**:
|
||||
1. Direct links: `remarks JOIN remark_job_runs WHERE job_run_id = X`
|
||||
2. Job-level scope: `remarks JOIN remark_scopes WHERE job_id = Y AND resolved_at IS NULL AND active_from_date <= run_date` (with timezone-safe fallback from `start_date`)
|
||||
- Prevents duplicates by tracking seen remark IDs
|
||||
|
||||
### Resolved vs Deleted
|
||||
- **Resolved**: Ticket completed in Autotask (tracked in internal `tickets.resolved_at`)
|
||||
@ -359,6 +363,23 @@ File: `build-and-push.sh`
|
||||
|
||||
## Recent Changes
|
||||
|
||||
### 2026-02-19
|
||||
- **Added 3CX Update parser support**: `threecx.py` now recognizes subject `3CX Notification: Update Successful - <host>` and stores it as informational with:
|
||||
- `backup_software = 3CX`
|
||||
- `backup_type = Update`
|
||||
- `overall_status = Success`
|
||||
- **3CX informational schedule behavior**:
|
||||
- `3CX / Update` and `3CX / SSL Certificate` are excluded from schedule inference in `routes_shared.py` (no Expected/Missed generation).
|
||||
- **Run Checks visibility scope (3CX-only)**:
|
||||
- Run Checks now hides only non-backup 3CX informational jobs (`Update`, `SSL Certificate`).
|
||||
- Other backup software/types remain visible and unchanged.
|
||||
- **Fixed remark visibility mismatch**:
|
||||
- `/api/job-runs/<run_id>/alerts` now loads remarks from both:
|
||||
1. `remark_job_runs` (explicit run links),
|
||||
2. `remark_scopes` (active job-scoped remarks),
|
||||
- with duplicate prevention by remark ID.
|
||||
- This resolves cases where the remark indicator appeared but remarks were not shown in Run Checks modal or Job Details modal.
|
||||
|
||||
### 2026-02-13
|
||||
- **Fixed missed runs ticket propagation**: Added `link_open_internal_tickets_to_run` calls in `_ensure_missed_runs_for_job` (routes_run_checks.py) after creating both weekly and monthly missed JobRun records. Previously only email-based runs got ticket linking, causing missed runs to not show internal tickets or Autotask tickets. Required `db.session.flush()` before linking to ensure run.id is available.
|
||||
- **Fixed checkbox auto-selection**: Added `autocomplete="off"` to all checkboxes on Inbox and Run Checks pages. Prevents browser from automatically re-selecting checkboxes after page reload following delete actions.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user