Skip to content

v3.1.2

Choose a tag to compare

@jingyu jingyu released this 27 Sep 07:25
· 3 commits to master since this release
93b134e

Maintenance release focused on tooling and distribution: the command line tools are now Java and ship on every platform, release assets carry a signed checksum file, an existing super node can be updated in place, and a node learns its own public endpoint from the network.

Note: The command line tools replace the earlier Rust tools of the same names. On Debian systems boson-cli, boson-director-cli and boson-node are all on the path after installing the packages, and boson-node replaces the DHT runner and its shell.

Note: The admin CLI configuration key rootUserKey is renamed to privateKey. The Debian packages migrate /etc/boson/director-cli.yaml on upgrade; elsewhere run the setup wizard with --migrate to bring an existing file up to date.

Added

  • Add new Java command line tools, available on every supported platform: boson-cli for users and application developers, boson-director-cli for operators, and boson-node to run and explore a DHT node.
  • Add super node service access to boson-cli, which finds the Ion Store, DHT and Active Proxy of a node through its Director.
  • Add a Director client library covering the full client API, OAuth sign-in, device pairing and the admin API, published to Maven Central.
  • Add public endpoint discovery to the DHT: a node learns its endpoint from what replying nodes observe, announces a change with a self-lookup, and gives up an endpoint that has gone stale.
  • Add user blocking to the messaging client, dropping friend requests and direct messages from blocked users.
  • Add a contact synchronization RPC to the messaging service, so a device can fetch the changes it missed.
  • Add a Date header to every Director, service and federation answer, so a client with a skewed clock can correct itself and sign its own access tokens.
  • Add public endpoint detection to the super node setup wizard, falling back to the local address with a warning.
  • Add retrieval by ions:// address to the Ion Store client, served locally when the address names the bound service.
  • Add a side-effect-free registration options endpoint and a public admin identity endpoint to the Director.

Changed

  • Advertise Active Proxy session endpoints at the node's public address rather than its bind address.
  • Take the service endpoint and upstream as URIs in the Active Proxy client configuration, and remove its standalone launcher in favour of boson-cli.
  • Apply friend request rules consistently across the messaging service and client, and date a received request by both its send and arrival time.
  • Bind the node configuration templates to the local address, and require peer.endpoint for a wildcard Active Proxy host.
  • Use the official Boson mark across the node home page, the User Portal and the Admin Dashboard.
  • Refuse to start on Java older than 17 when no runtime is bundled, rather than failing later.

Fixed

  • Fix a request body being lost while the Ion Store service resolved the caller's plan, which stored a truncated object.
  • Fix contact synchronization losing changes when a device reconnected with a backlog, and stop messages sent in the same millisecond from sharing an id.
  • Fix dead routing table entries surviving when no replacement was available.
  • Fix admin API list ordering, stale plan data, avatar replacement and malformed input answered with HTTP 500.
  • Fix a refused avatar upload and an aborted remote fetch leaving state behind in the Director.
  • Fix a connection left open when an Ion Store upload or federated fetch was refused, and report a ciphertext that does not decrypt as a decryption error.
  • Fix various stability, test, documentation, and other minor issues.