Skip to content

Opt-in SSO single logout, nice chart scales, storage usage donut, topology export/snap, disk SMART + temperature - #7

Merged
anand34577 merged 1 commit into
mainfrom
feature/topology-disks-chart-fixes
Sep 3, 2026
Merged

Opt-in SSO single logout, nice chart scales, storage usage donut, topology export/snap, disk SMART + temperature#7
anand34577 merged 1 commit into
mainfrom
feature/topology-disks-chart-fixes

Conversation

@anand34577

Copy link
Copy Markdown
Owner

Summary

  • OIDC single logout is now opt-in (default off), with the exact post-logout redirect URL surfaced in Settings for the admin to register at their provider first. Fixes the sign-out regression: enabling RP-Initiated Logout unconditionally broke sign-out for any existing SSO deployment whose IdP hadn't been told to trust the redirect (Keycloak's invalid_redirect_uri).
  • Chart number formatting: formatBytes shows up to 2 decimals; every bytes/rate chart now computes a rounded "nice" axis scale (0/5/10/15/20 GB — the standard Heckbert nice-numbers algorithm) and locks every tick + tooltip to one consistent unit derived from the axis's own max.
  • Storage capacity donut redesigned: sized by used bytes + a free remainder instead of total-capacity share, which read as "100% used" the instant there was only one pool.
  • Topology: Export SVG (fits the full diagram regardless of pan/zoom, via html-to-image) and a Snap-to-grid toggle.
  • New Disks tab on the node detail page: every physical disk with model/serial/size/type, health, SSD/NVMe wearout %, and a per-drive temperature read from SMART, plus a full SMART attribute table. New /nodes/{node}/disks and /nodes/{node}/disks/smart endpoints.
  • CPU/GPU temperature isn't exposed by Proxmox's own API (no built-in lm-sensors/nvidia-smi integration) — noted as a real limitation, not silently skipped.

Testing

  • go build ./..., go vet ./..., go test ./... all pass.
  • tsc --noEmit, oxlint, vitest, npm run build all pass.

Migrations

One new migration (00014, sqlite + postgres): oidc_settings.single_logout.

New dependency

html-to-image (small, focused, used for the Topology SVG export — the same approach React Flow's own docs recommend).

…ology export/snap, disk SMART + temperature

- OIDC: RP-Initiated Logout is now opt-in (default off) via a new
  'single_logout' setting, with the exact post-logout redirect URL shown
  in Settings for the admin to register at their provider. Fixes the
  regression from last time: enabling it unconditionally broke sign-out
  for anyone whose IdP hadn't been told to trust the redirect yet
  (Keycloak's invalid_redirect_uri, browser stuck on a stale page).
- formatBytes shows up to 2 decimals (was an adaptive 0-or-1 rule); every
  bytes/rate chart now computes a rounded 'nice' axis scale (0/5/10/15/20
  GB, the standard Heckbert algorithm) and locks every tick + the tooltip
  to one consistent unit derived from the axis's own max.
- Storage page: the capacity donut is now sized by used bytes + a free
  remainder instead of by total capacity share, which was always 100%
  the moment there was only one pool — completely disconnected from the
  "224 GB used" text next to it.
- Topology: Export SVG (fits the full diagram regardless of current pan/
  zoom) and a Snap-to-grid toggle.
- New Disks tab on the node detail page: every physical disk with model/
  serial/size/type, PASSED/FAILED health, SSD/NVMe wearout %, and a
  per-drive temperature read from SMART, plus a full SMART attribute
  table per disk. Backed by new /nodes/{node}/disks and
  /nodes/{node}/disks/smart endpoints.
- CPU/GPU temperature is not exposed by Proxmox's own API (no built-in
  lm-sensors/nvidia-smi integration) and isn't something this can add
  without a node-side agent Proxmox doesn't ship — disk temperature via
  SMART is the thermal data actually available.
@anand34577
anand34577 merged commit eb30c54 into main Sep 3, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant