-
DcRouter v32.0.1
StableRelease / build-and-release (push) Successful in 27m37sreleased this
2026-09-19 00:02:38 +00:00 | 84 commits to main since this release2026-09-19 - 32.0.1
Fixes
- drop the version token from the combined gateway-client route key (routes)
- A gateway-client route that owns one hostname under a specific route reference stored its ownership as
<type>:<clientId>:<appId>:v2:host-route:<payload>. Thev2:token was a released key prefix of ours carrying a version, which nothing reads as a version and nothing ever increments. The composed and matched spelling is nowhost-route:<payload>, with the prefix, its parser and the generated route name owned by one module (ts/opsserver/helpers/gateway-client-route-key.ts). The payload bytes are unchanged. - New migration step
host-route-key(32.0.0to32.0.1) rewrites every storedRouteDoc.metadata.externalKeythat still carries the old prefix, and rewritesroute.nameonly where it still equals the name generated from the old key — an operator- or producer-chosen name is never touched. The walk is ordered byid, resumes from a step-owned checkpoint cursor, selects documents by their stored spelling so a re-run is a no-op, and leavesupdatedAtalone because no route's effective configuration changes. A stored key whose payload does not decode into a hostname and route reference is refused by name with the route id instead of being carried forward. - There is no runtime tolerance for the old prefix after the step: a route key that still spells it is treated as a malformed combined key and listed with its route hostname only, never with a route reference it cannot prove, and the malformed key is stated once per listing at
warnwith the route id. Once the step has run the ledger names32.0.1, and a ledger a newer dcrouter wrote is refused by name (ts_migrations/readme.md, "Migration Rules"), so a rollback to 32.0.0 does not start against the migrated database. - The key is composed, matched and consumed entirely inside dcrouter. Producers send
IGatewayClientOwnershipand never compose or read anexternalKey, so no gateway-client API body, no Cloudly or Onebox call site and no wire contract changes with this release. The only externally visible change is the string an operator sees in route metadata.
- A gateway-client route that owns one hostname under a specific route reference stored its ownership as
Downloads
- drop the version token from the combined gateway-client route key (routes)