What's New in 1.1
This page lists the changes between Bondy Connect 1.0.0 and 1.1. It covers releases 1.0.1, 1.0.2 and 1.1.0. Each section starts with the changes that need action from you.
Coming from a release candidate?
A deployment that runs a 1.0.0 release candidate has more to change: configuration keys, the WAMP and HTTP APIs, and the realm authentication rules. Follow Migrating from a Release Candidate. It includes every change on this page.
1.1.0
Action required
- A node refuses to start on a key that it does not read. This covers a renamed key, a removed key and a typo. The error names each such key and up to three similar keys that the release knows. The node also refuses to start on a value that it cannot parse. Earlier releases ignored such a key, so its setting stayed at the default without a message. Run
scripts/migrate_conf.escript check <path>/bondy.confbefore you upgrade. - The
db.*keys are grouped by the component they configure. Most of them have a new name. For example,db.aae.*isdb.oplog.aae.*anddb.wal.*isdb.oplog.wal.*. Values, units and defaults do not change.scripts/migrate_conf.escript migratewrites the converted file. Storage and anti-entropy keys lists every rename.
New features
- Pack collection settings.
db.oplog.pack.gc.interval,db.oplog.pack.gc.growth_factoranddb.oplog.pack.gc.min_recordstune the reclamation of a durable table's anti-entropy tree. See Pack Collection.
1.0.2
Fixes
- Anti-entropy tree pages are reclaimed as writes grow. Release 1.0.1 reclaimed them at most once an hour, and never in a node's first hour. A burst of writes, such as a restore, could fill the data volume first. Reclamation now also runs when the sealed records of a shard's tree reach twice the count that the last run left, counted from at least 10,000 records. See Pack Collection.
1.0.1
Action required
- The Admin HTTP API needs a bearer token. Every listener that carries
admin_apineeds an OAuth2 access token from the master realm on each request other thanOPTIONS. A request without one gets401. The internal socket needs no token. See Authenticating to the Admin API. - Update procedures refuse credentials.
bondy.user.update,bondy.oauth2.client.updateandbondy.oauth2.resource_owner.update, and theirPUTroutes, refuse apassword. The client procedure and route also refuse aclient_secret. Usebondy.user.change_password. cookieandoidcrpare separate methods.cookieadmits a credential that arrives in a cookie.oidcrpadmits a ticket from the OIDC login flow. A realm that uses OIDC needs both in itsauthmethods, each with a source that allows it.- Sources apply to OIDC users without a user record. Add sources assigned to
allforoidcrpandcookie, for the networks your users connect from. - The verify route applies the realm's methods and sources. See Verify route.
oauth2.refresh_token.limitis a whole number of tokens. A value with a unit suffix, or0, stops the node at boot.- Three OIDC keys are removed. Delete
security.oidc.providers.enabled,security.oidc.providers.<id>.login_pathandsecurity.oidc.providers.<id>.redirect_path. No code read them. - MCP matches sources against the forwarded client address when the request comes from a trusted proxy.
Update realm authentication settings describes each authentication change.
New features
- OIDC on the Admin API and API Gateway. The Admin API accepts the master realm's OIDC ticket cookie. An API Gateway path with the
oidcscheme authenticates with the realm's ticket cookie. - Dry-run imports.
bondy.export.importtakesdry_run, andbondy.export.statusadds an import report. See Backup and Restore and the import report. - The
bondy_auth_fence_closedalarm. Bondy raises it when the authentication freshness fence refuses every new authentication for too long. See Alarms. - Alpine images. Images with the
-alpinesuffix are published again forlinux/amd64andlinux/arm64. See Install using Docker.
Fixes
The fixes that change a result your clients can see:
bondy.user.enableandbondy.user.disableanswerwamp.error.no_such_principalfor an unknown user.- A reserved user or group name, such as
alloranonymous, getsbondy.error.invalid_value. bondy.user.remove_group,bondy.group.add_group,bondy.group.add_groupsandbondy.group.remove_groupanswer an empty result, notbondy.error.internal_error.bondy.user.remove_aliasremoves only an alias that the user holds.- An API Gateway path with the
basicorapi_keyscheme answers401, not500. - A bearer value that is not a JWT gets
401, not400. - With
security.rate_limiton, Bondy charges API Gateway, Admin API and OAuth2 token-endpoint requests before authentication, so a flood of refused requests gets429. See Rate Limiting.