Skip to content

v2.2.0

Latest

Choose a tag to compare

@jkandasa jkandasa released this 17 Sep 11:00
· 15 commits to main since this release
536bfdb

What's new since v2.1.1

Access control

  • IAM-style policies restrict API and UI access by resource kind, action, and labels.
  • Existing installs get an admin policy on upgrade (2.2.0-1). Users with no policies are granted admin.
  • Policy management in the console, plus websocket fixes so restricted users do not see resources they cannot access.
  • Service tokens are now service accounts (upgrade 2.2.0-2). The secret is shown once at create time.

See docs/access-control.md.

CLI (myc)

  • myc apply -f add, merge, or delete resources from YAML/JSON (--dry-run, --replace).
  • myc set for stored properties and live field values; myc upload firmware for binaries.
  • Server connections use aliases (myc alias set|list|remove). There is no default alias; commands take it as the first argument (myc get node home).
  • login / logout are removed. myc --version prints client version. myc server info <alias> replaces myc version.
  • myc get settings / myc set settings for system settings.
  • Manage users, policies, and service accounts (apply, get, delete, enable / disable user).

See docs/cli.md.

Web console

  • Console source lives in this repository (web-console/). Release builds pack the UI into the server binary (-tags=embedui) and extract it to disk on first start when web.web_directory is empty.
  • Packages and the server image no longer ship a sidecar web_console / /ui tree. If you still set web_directory to web_console or /ui, keep that directory or clear the field.
  • Build moved to Vite 6 and Yarn 4. Monaco loads locally (no CDN).
  • Topology: gateway/node filters, parent/child links (including parent_id 0), click-to-sidebar with live values, send, and field graphs.
  • Locales completed for existing languages; added Italian, Hindi, Kannada, Malayalam, and Telugu. Transifex is removed, edit web-console/public/locales/<lang>.yaml.

See docs/locales.md.

Gateways and OTA

  • MySensors: generic FOTA via a data-repository JavaScript (fota_script / onConfig, optional onBlock). Sample STM32 A/B flow in docs/ota_stm32_ab.md.
  • Completed OTA duration is recorded on the node.
  • MQTT: topics that start with / are no longer doubled.

HTTPS

  • Persist the auto-generated TLS certificate and renew it before it expires.
  • Certificate validity is printed at server startup.

Other

  • In-memory store: time-field filter/sort (gt/gte/lt/lte) and case-insensitive asc/desc.
  • Console security pins: lodash / lodash-es 4.18.1, path-to-regexp 1.9.0, @babel/runtime 7.29.7.
  • Alpine and Go image versions updated; Go binaries built with -s -w, -trimpath, CGO_ENABLED=0.

Upgrade notes

  1. Back up before you start.
  2. Server upgrades 2.2.0-1 (policies) and 2.2.0-2 (service accounts) run on first start.
  3. Update CLI scripts: set an alias and pass it as the first argument.
  4. Review web.web_directory if you previously used the sidecar UI path.
  5. After this release, untagged main builds report 2.3.0-devel.