16 Commits

Author SHA1 Message Date
ea3f13f51f fix: protectionGroups is v13+ only — handle 400 gracefully 2026-06-10 13:53:58 +07:00
c5294ec754 fix: align with v13 OpenAPI spec — jobTypeFilter, protection groups, alarms resiliency
- fetch_backups(): typeFilter → jobTypeFilter (spec parameter name fix)
- fetch_protection_groups(): new method via /api/v1/agents/protectionGroups
  (spec-recommended replacement for deprecated protectedComputers)
- fetch_alarms(): wrap in try/except — endpoint not in v13 spec, may 404
- _collect_instance(): fetch and expose protection_groups in response
2026-06-10 13:51:09 +07:00
699ac3646a fix: return empty list from fetch_jobs() instead of raising, suppress error when sessions derive jobs 2026-06-10 12:00:08 +07:00
f1fa91538e fix: add per-type fallback for fetch_backups(), move agent types first in per-type lists 2026-06-10 11:54:50 +07:00
5619d20ad1 feat: add restore points integration via /api/v1/restorePoints 2026-06-10 11:51:52 +07:00
d15be6c0d3 fix: replace agent policies endpoint with jobs API query per v13 docs 2026-06-10 09:19:48 +07:00
f2194cc0fd fix: align with Veeam v13 REST API docs
fetch_jobs:
- First try unfiltered /api/v1/jobs/states, /api/v1/jobs, /api/v1/backups
- Fallback to individual typeFilter per EJobType (excluding FileBackup,
  which triggers server-side enum 500)
- Removed incorrect source/typeFilter=Backup and agent policies URLs

fetch_sessions:
- Use correct typeFilter parameter (not sessionType)
- Use proper ESessionType enum values (not EJobType values)
- Combine all types into single URL via multiple typeFilter params
  (API accepts array of ESessionType)
2026-06-10 09:10:31 +07:00
ba4cadc808 feat: full sessionType enum (23 types) with comma-separated batching 2026-06-10 09:05:00 +07:00
683b86456e feat: add WindowsAgentBackupJob and BackupCopy session types 2026-06-09 18:00:59 +07:00
81e0ba3a4a fix: merge sessions from all types (BackupJob, FileBackupJob, AgentBackupJob, unfiltered)
- fetch_sessions now queries 5 URL variants and merges results
  by unique session id (no duplicates)
- First query: unfiltered with 3x limit (gets recent sessions of all types)
- Then: sessionType=BackupJob, FileBackupJob, AgentBackupJob
- Ensures all backup job types appear in dashboard
2026-06-09 17:43:53 +07:00
9030db8368 fix: use sessionType=BackupJobs for backup session filtering 2026-06-09 17:30:35 +07:00
ee88951c31 fix: add protectionGroups endpoints to job fallback chain 2026-06-09 17:25:20 +07:00
0db2c11408 feat: add agent policies and session typeFilter fallbacks
- fetch_jobs: try /api/v1/agents/policies/states and /api/v1/agents/policies
  as additional fallback URLs (agent-based backup policies)
- fetch_sessions: fallback with typeFilter=Backup and typeFilter=Agent
  to find actual backup/agent sessions beyond system config sync
- New fetch_agent_policies() method for dedicated agent policy queries
- Helps surface real backup policies when classic /api/v1/jobs fails
  due to FileBackup enum bug
2026-06-09 17:24:58 +07:00
0689a46638 fix: fallback to derive jobs from sessions when API fails
- veeam_client: try 6 URL variants (states/config with source/typeFilter),
  then legacy on 9419, then legacy on port 9398
- main.py: if jobs_data empty but sessions available, aggregate sessions
  by jobName to build synthetic job list with name/type/result/state
- Ensures jobs tab always shows data even when API has FileBackup enum bug
2026-06-09 17:22:07 +07:00
ba8a413e85 Initial commit: Veeam multi-instance monitoring dashboard
- FastAPI backend with CRUD for Veeam instances
- Veeam REST API client supporting v9.5-v13 (legacy + OAuth2)
- Multi-version detection and auth fallback
- SQLite caching layer
- Web dashboard with summary cards, instance list, detail tabs
- Docker packaging
2026-06-09 17:10:42 +07:00
b48c200571 Initial commit 2026-06-09 10:09:54 +00:00