Repository navigation
v3.1.2
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-clifor users and application developers,boson-director-clifor operators, andboson-nodeto 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
Dateheader 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.endpointfor 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.