Commit Graph

3012 Commits

Author SHA1 Message Date
rcourtman
324c4cccdc Update storage page and routes 2026-02-05 17:57:58 +00:00
rcourtman
522dba7928 Add infrastructure page with unified resources table 2026-02-05 17:57:58 +00:00
rcourtman
74a1482b96 Add PMG services page 2026-02-05 17:57:58 +00:00
rcourtman
b69229193d Add unified resource model v2 API and matcher 2026-02-05 17:57:58 +00:00
Abhishek Kudwa
c2daf4b167 Fix #1193: Change memory balloon segment color from yellow to blue (#1194)
Change memory balloon segment color from yellow to blue to avoid confusion with warning threshold colors
2026-02-05 17:35:22 +00:00
rcourtman
f1ad0ffe06 fix: correct node type check in empty state conditions
The dashboard and storage pages incorrectly filtered nodes by type === 'pve',
but the backend provides nodes with type === 'node'. This caused the 'No Proxmox
VE nodes configured' message to appear even when nodes were present.

- Dashboard.tsx: Simplified check to props.nodes.length === 0
- Storage.tsx: Changed filter to type === 'node'

Fixes #1192
2026-02-05 12:22:01 +00:00
rcourtman
8b4325bc53 Exercise agent version parsing 2026-02-05 12:20:53 +00:00
rcourtman
eaeda68ee5 Cover cluster resources without type filter 2026-02-05 12:20:05 +00:00
rcourtman
56a17ce9a4 Cover backup task node list errors 2026-02-05 12:19:18 +00:00
rcourtman
9391dd103a Add trend and alert color tests 2026-02-05 12:18:36 +00:00
rcourtman
4256d1e63c Cover PDF recommendation defaults 2026-02-05 12:17:44 +00:00
rcourtman
423b868284 Cover underutilization insights 2026-02-05 12:16:57 +00:00
rcourtman
c3b185c587 Cover getHealthyClient edge cases 2026-02-05 12:16:19 +00:00
rcourtman
3ad719dc06 Add CSV missing-value coverage 2026-02-05 12:15:07 +00:00
rcourtman
5ff3a6b913 Cover storage timeout context handling 2026-02-05 12:13:57 +00:00
rcourtman
9a800b3f59 Add client storage and interface coverage 2026-02-05 12:12:02 +00:00
rcourtman
070bc82f65 Test backup task filtering and rate limit retries 2026-02-05 12:10:53 +00:00
rcourtman
37d2e7cbf0 Cover container config and rate limit paths 2026-02-05 12:08:52 +00:00
rcourtman
733a4b065c Add client network and cluster health tests 2026-02-05 11:53:56 +00:00
rcourtman
4b73fb7252 Make failover test deterministic 2026-02-05 11:52:01 +00:00
rcourtman
f67e260c12 Cover client request auth error paths 2026-02-05 11:49:57 +00:00
rcourtman
0d1191cdfe Cover PDF disks, alerts, and metric colors 2026-02-05 11:48:14 +00:00
rcourtman
8b40542a29 Exercise PDF observations and recommendations 2026-02-05 11:47:00 +00:00
rcourtman
1a518321c2 Add csv formatValue coverage 2026-02-05 11:45:22 +00:00
rcourtman
f1fece52ed Add PDF backup and duration coverage 2026-02-05 11:44:28 +00:00
rcourtman
4ec2df5071 Add cluster membership and not-implemented coverage 2026-02-05 11:42:35 +00:00
rcourtman
ed6f15d49e Cover multi-report defaults and metric filtering 2026-02-05 11:41:30 +00:00
rcourtman
2f4bcc83f9 Add cluster client fallback coverage 2026-02-05 11:40:08 +00:00
rcourtman
2e62754efc Extend report engine and cluster client coverage 2026-02-05 11:38:55 +00:00
rcourtman
5fe467c4e5 Add report engine and cluster client coverage 2026-02-05 11:36:54 +00:00
rcourtman
f7f3cd3297 fix(ui): remove duplicate disk display in host drawer and add color-coded usage
- Remove redundant StackedDiskBar from drawer (was showing disks twice)
- Keep vertical disk list with mountpoint, percentage, and used/total sizes
- Add usage-based color coding matching table rows (green/yellow/red)
- Use same rgba colors as StackedDiskBar for visual consistency
2026-02-05 10:46:00 +00:00
rcourtman
b6e4c20e6b fix: preserve email rateLimit when not explicitly provided in request
Backend fix:
- Added presence check in UpdateEmailConfig to detect when rateLimit is
  omitted from JSON (vs explicitly set to 0)
- Preserves existing rateLimit value when field is not present in request
- Added comprehensive integration tests covering all scenarios

Frontend fix:
- Added rateLimit to EmailConfig interface
- Fixed getEmailConfig to read rateLimit from server response
- Fixed updateEmailConfig to include rateLimit when set
- Fixed two places in Alerts.tsx that hardcoded rateLimit: 60

Additional fixes:
- Added Array.isArray guards in DiagnosticsPanel sanitization
- Initialized Nodes/PBS arrays in diagnostics response to prevent null

Closes rate limit persistence bug where updating email settings would
reset the rate limit to default value.
2026-02-05 09:59:05 +00:00
rcourtman
dc66eb544c fix(config): ensure NotifyOnResolve defaults to true for new and legacy configs 2026-02-05 09:59:05 +00:00
rcourtman
93fd5788c9 fix(monitoring): add info logging for skipped recovery notifications 2026-02-05 09:59:05 +00:00
rcourtman
9b84fb7212 Auto-update Helm chart documentation 2026-02-05 00:22:02 +00:00
rcourtman
c949e9c9f9 Auto-update Helm chart version to 5.1.2 v5.1.2 helm-chart-5.1.2 2026-02-04 23:16:55 +00:00
rcourtman
981fc00d4c Auto-update Helm chart documentation 2026-02-04 23:16:54 +00:00
rcourtman
0f961054c6 fix: allow agent tokens to auto-register Proxmox nodes
The security hardening in beae4c86 added a settings:write scope
requirement to /api/auto-register, but agent install tokens only have
host-agent:report scope. This broke Proxmox auto-registration for all
agent-generated tokens. Accept either settings:write or host-agent:report
scope for auto-registration.

Fixes #1191
2026-02-04 22:55:25 +00:00
rcourtman
3d6488d159 fix: add agent:exec to API scope options in token creation UI
Users couldn't manually select agent:exec when creating tokens
via Settings → Security → API Tokens because it wasn't listed
in the scope options.
2026-02-04 22:42:48 +00:00
rcourtman
247cb0baa6 chore: bump version to 5.1.2 2026-02-04 22:34:10 +00:00
rcourtman
f6338f34fa fix: add agent:exec scope to generated agent tokens
Agent tokens created from the Settings UI and the backend install
command handler were missing the agent:exec scope, which was added
as a security requirement in 60f9e6f0. This caused all newly
installed agents to fail registration with "Agent exec token missing
required scope: agent:exec".

Fixes #1191
2026-02-04 22:33:01 +00:00
rcourtman
69d20abc0c Auto-update Helm chart version to 5.1.1 helm-chart-5.1.1 2026-02-04 21:11:14 +00:00
rcourtman
7d3bf20b3e Auto-update Helm chart documentation 2026-02-04 21:11:13 +00:00
rcourtman
5bbc4329bd Remove pprof diagnostics endpoint 2026-02-04 20:44:00 +00:00
rcourtman
a37b59b7e4 Add admin-gated pprof diagnostics endpoint 2026-02-04 20:39:24 +00:00
rcourtman
0635d91581 chore: bump version to 5.1.1 v5.1.1 2026-02-04 20:37:10 +00:00
rcourtman
8bb89c4031 test: add memory regression coverage for AI stores 2026-02-04 19:56:12 +00:00
rcourtman
ee0e89871d fix: reduce metrics memory 86x by reverting buffer and adding LTTB downsampling
The in-memory metrics buffer was changed from 1000 to 86400 points per
metric to support 30-day sparklines, but this pre-allocated ~18 MB per
guest (7 slices × 86400 × 32 bytes). With 50 guests that's 920 MB —
explaining why users needed to double their LXC memory after upgrading
to 5.1.0.

- Revert in-memory buffer to 1000 points / 24h retention
- Remove eager slice pre-allocation (use append growth instead)
- Add LTTB (Largest Triangle Three Buckets) downsampling algorithm
- Chart endpoints now use a two-tier strategy: in-memory for ranges
  ≤ 2h, SQLite persistent store + LTTB for longer ranges
- Reduce frontend ring buffer from 86400 to 2000 points

Related to #1190
2026-02-04 19:49:52 +00:00
rcourtman
d2604a6859 test: add AI memory regression coverage 2026-02-04 19:46:20 +00:00
rcourtman
bcd0dbfc18 Add metrics history memory regression test 2026-02-04 19:35:19 +00:00