github LanternOps/breeze v0.90.0

latest releases: v0.122.1, v0.122.0, v0.121.1-hotfix.2...
3 months ago

Breeze RMM v0.90.0 — live per-device automation progress, portable-device battery telemetry, and a broad reliability/security fixes wave.

Summary

  • Automations — automation runs now record a structured per-device result (pass/fail/pending/skipped) with timing and output, and the UI shows it updating live as the run executes instead of only a final aggregate count (#2023).
  • Devices — portable devices now report battery and power status (percent, charging state, plugged-in, time remaining) from the agent heartbeat (#2142).
  • Software detection — new file-version (>=) detection rule for identifying installed software by on-disk file version (#2089).
  • Reliability & security hardening — agent heartbeat now fails closed when its update-policy lookup fails (#2125), uptime scoring credits boot spans and stops a recovered-self double-dip (#2166), and the Windows MSI bootstrap token finally honors the device-enrollment limit set at build time (#2161).

Added

  • Per-device automation results with live progress — each automation run seeds a row per targeted device and updates it running → success/failed/skipped as the concurrency loop finishes, giving a consolidated per-device breakdown with timing and captured output that a polling UI watches live (#2023)
  • Battery & power status for portable devices — the agent heartbeat reports a power snapshot (present, percent, charging state, plugged-in, time-remaining) surfaced on the device (#2142)
  • File-version (>=) software detection rule — detect installed software by comparing an on-disk file version with a >= operator (#2089)

Improved

  • Billing lists — shared list chrome and pill-role layering across billing surfaces, with follow-up test coverage (#2151)

Fixed

  • Auth — a passkey is now accepted as an alternate MFA method when an authenticator app is the primary factor, instead of being rejected (#2153)
  • Reliability scoring — boot spans are credited as uptime and a recovered-self credit double-dip is removed; fleet scores may shift after upgrade as new data accrues (#2166)
  • Patching — update-ring category include/exclude filters are enforced at approval time, not just at scan time (#2117)
  • Remote — Scheduled Tasks — the Scheduled Tasks tool is now theme-aware (#2136)
  • Remote terminal — a manual Disconnect no longer triggers auto-reconnect (#2137)
  • Web — idle logout — the partner's effective session-timeout is honored when logging out idle sessions (#2147)
  • Web — device action bar — gated on status !== 'online' rather than == 'offline', so actions render correctly for transitional states (#2078)
  • Config policies — org ownership badge + locked org-assignment target (#2167); org-only feature tabs are gated on partner-wide policies (#2101)
  • Installer — the Windows MSI filename-bootstrap token honors the device-enrollment limit set when the installer was built; a multi-use token now enrolls up to its limit instead of silently 404-ing after the first machine (#2161)

Security

  • Agents — fail closed on heartbeat update-policy lookup — if an agent's update-policy can't be resolved, the heartbeat no longer proceeds with a permissive default (#2125)
  • Auth — fixed token lifetimes — the deliberate 15-minute access / 7-day refresh token design is unchanged; the phantom JWT_EXPIRES_IN / REFRESH_TOKEN_EXPIRES_IN variables that falsely implied a tunable knob are removed so config no longer advertises a control that does nothing (#2146)

Self-hosters are encouraged to upgrade.

Self-Hosting / Upgrade Notes

Upgrade. Bump BREEZE_VERSION to 0.90.0, then:

docker compose pull api web && docker compose up -d

(If you build from source, run pnpm install first.)

Database — 3 migrations, idempotent, auto-apply on boot via autoMigrate (unless AUTO_MIGRATE=false):

  • new automation_run_device_results table (per-device automation results, org-scoped RLS on the device's org),
  • devices.battery_status nullable jsonb column,
  • installer_bootstrap_tokens.consumed_count integer with a small guarded backfill of already-consumed tokens.

No table rewrites or large backfills — no long stall on boot.

No new required environment variables. Two variables are removed from the shipped compose/.env examples: JWT_EXPIRES_IN and REFRESH_TOKEN_EXPIRES_IN. They were never read by any code path (access/refresh TTLs are hardcoded at 15m/7d by design), so setting them never did anything — you can safely delete them from your .env and compose. No behavior change.

Behavior changes.

  • Agent heartbeat now fails closed when the update-policy lookup fails (#2125) — an agent that can't resolve its update policy no longer falls through to a permissive default.
  • Reliability scores may shift after upgrade — devices affected by the boot-span uptime credit or the recovered-self double-dip will re-score as new heartbeat data accrues (#2166).
  • Remote terminal no longer auto-reconnects after you click Disconnect (#2137).

No breaking changes.

Full Changelog: v0.89.0...v0.90.0


What's Changed

Full Changelog: v0.89.0...v0.90.0

Don't miss a new breeze release

NewReleases is sending notifications on new releases.