Skip to content

Commit ee6b64a

Browse files
committed
Update deps and changelog
1 parent 9370cdb commit ee6b64a

File tree

5 files changed

+204
-120
lines changed

5 files changed

+204
-120
lines changed

CHANGELOG.md

Lines changed: 89 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,11 @@ when running HA. Legacy API and service session are now deprecated and will be r
8989
* Build updated to Go 1.25
9090
* CLI cleaned up to remove calls to `os.Exit`, making it more friendly for embedding
9191
* Controller Edge APIs now return `WWW-Authenticate` response headers on `401 Unauthorized` responses, giving clients actionable information about which auth methods are accepted and what went wrong
92-
92+
* HA Controllers can be marked as 'preferredLeader' via config
93+
* Dynamic cost range for smart routing expanded beyond the previous 64K limit
94+
* Dial failures now return the circuit ID and error information for easier debugging
95+
* Router-to-controller control channels now support multiple underlays with priority-based message routing
96+
* The dialing identity's ID and name are now forwarded to the hosting SDK
9397

9498
## Basic Permission System (BETA)
9599

@@ -698,35 +702,109 @@ WWW-Authenticate: Bearer realm="openziti-secondary-ext-jwt" error="missing" erro
698702

699703
Unauthenticated endpoints such as version information do not return `WWW-Authenticate` headers.
700704

705+
## HA Preferred Leaders
706+
707+
Controllers can be marked as a preferred leader.
708+
709+
**Example Config**
710+
```yaml
711+
cluster:
712+
dataDir: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/ctrldata
713+
preferredLeader: true
714+
```
715+
716+
If a controller that is not marked preferredLeader becomes a preferredLeader, it will check
717+
if there's a node available that is marked as preferred. If there is one, or one later
718+
joins the cluster, the non-preferred node will attempt to transfer leadership to the
719+
node that is marked as preferred.
720+
721+
## Expanded Dynamic Cost Range
722+
723+
The dynamic cost range for smart routing has been expanded beyond the previous 64K limit. Under high
724+
load, terminators could saturate the cost space, making dynamic cost values meaningless for routing
725+
decisions and leading to uneven load distribution. The expanded range allows for more granular cost
726+
differentiation even under heavy load.
727+
728+
## Circuit ID and Error in Dial Failures
729+
730+
Dial failures now return the circuit ID and, when available, the error that caused the circuit to fail.
731+
Previously, the circuit ID was only returned on successful dials. Note that SDKs will need to be
732+
updated to surface the circuit id when a dial failure happens.
733+
734+
## Multi-Underlay Control Channels
735+
736+
Router-to-controller control channels now support multiple underlays with priority-based message routing.
737+
This allows time-sensitive control messages (heartbeats, routing, circuit requests) to be separated from
738+
operational data (metrics, inspections) across dedicated TCP connections, preventing bulk operations from
739+
delaying user-affecting control plane traffic.
740+
741+
## Dialing Identity Forwarded to Hosting SDK
742+
743+
The identity ID and name of the dialing client are now forwarded to the hosting SDK when a circuit is
744+
established. This allows hosting applications to identify which identity initiated the connection,
745+
enabling identity-aware request handling on the server side. This will require SDK updates to add this
746+
to the API for hosting applications.
747+
701748
## Component Updates and Bug Fixes
702749

703-
* github.com/openziti/channel/v4: [v4.2.41 -> v4.2.50](https://github.com/openziti/channel/compare/v4.2.41...v4.2.50)
704-
* github.com/openziti/edge-api: [v0.26.50 -> v0.26.52](https://github.com/openziti/edge-api/compare/v0.26.50...v0.26.52)
750+
* github.com/openziti/channel/v4: [v4.2.41 -> v4.3.5](https://github.com/openziti/channel/compare/v4.2.41...v4.3.5)
751+
* [Issue #228](https://github.com/openziti/channel/issues/228) - Ensure that Underlay never return nil on MultiChannel
752+
* [Issue #226](https://github.com/openziti/channel/issues/226) - Allow specifying a minimum number of underlays for a channel, regardless of underlay type
753+
* [Issue #225](https://github.com/openziti/channel/issues/225) - Add ChannelCreated to the UnderlayHandler API to allow handlers to be initialized with the channel before binding
754+
* [Issue #224](https://github.com/openziti/channel/issues/224) - Update the underlay dispatcher to allow unknown underlay types to fall through to the default
755+
* [Issue #222](https://github.com/openziti/channel/issues/222) - Allow injecting the underlay type into messages
756+
757+
* github.com/openziti/edge-api: [v0.26.50 -> v0.26.53](https://github.com/openziti/edge-api/compare/v0.26.50...v0.26.53)
705758
* [Issue #164](https://github.com/openziti/edge-api/issues/164) - Add permissions list to identity
706759

707-
* github.com/openziti/foundation/v2: [v2.0.79 -> v2.0.84](https://github.com/openziti/foundation/compare/v2.0.79...v2.0.84)
760+
* github.com/openziti/foundation/v2: [v2.0.79 -> v2.0.87](https://github.com/openziti/foundation/compare/v2.0.79...v2.0.87)
708761
* [Issue #464](https://github.com/openziti/foundation/issues/464) - Add support for -pre in versions
709762

710-
* github.com/openziti/identity: [v1.0.118 -> v1.0.122](https://github.com/openziti/identity/compare/v1.0.118...v1.0.122)
763+
* github.com/openziti/identity: [v1.0.118 -> v1.0.125](https://github.com/openziti/identity/compare/v1.0.118...v1.0.125)
711764
* github.com/openziti/metrics: [v1.4.2 -> v1.4.3](https://github.com/openziti/metrics/compare/v1.4.2...v1.4.3)
712765
* [Issue #56](https://github.com/openziti/metrics/issues/56) - underlying resources of reference counted meters are not cleaned up when reference count hits zero
713766

714-
* github.com/openziti/runzmd: [v1.0.84 -> v1.0.86](https://github.com/openziti/runzmd/compare/v1.0.84...v1.0.86)
715-
* github.com/openziti/sdk-golang: [v1.2.10 -> v1.3.1](https://github.com/openziti/sdk-golang/compare/v1.2.10...v1.3.1)
767+
* github.com/openziti/runzmd: [v1.0.84 -> v1.0.89](https://github.com/openziti/runzmd/compare/v1.0.84...v1.0.89)
768+
* github.com/openziti/sdk-golang: [v1.2.10 -> v1.4.2](https://github.com/openziti/sdk-golang/compare/v1.2.10...v1.4.2)
769+
* [Issue #860](https://github.com/openziti/sdk-golang/issues/860) - Make the dialing identity's id and name available on dialed connections
770+
* [Issue #857](https://github.com/openziti/sdk-golang/issues/857) - Use new error code and retry hints to correctly react to terminator errors
771+
* [Issue #847](https://github.com/openziti/sdk-golang/issues/847) - Ensure the initial version check succeeds, to ensure we don't legacy sessions on ha or oidc-enabled controllers
716772
* [Issue #824](https://github.com/openziti/sdk-golang/pull/824) - release notes and hard errors on no TOTP handler breaks partial auth events
717773

718-
* github.com/openziti/secretstream: [v0.1.41 -> v0.1.46](https://github.com/openziti/secretstream/compare/v0.1.41...v0.1.46)
719-
* github.com/openziti/storage: [v0.4.31 -> v0.4.35](https://github.com/openziti/storage/compare/v0.4.31...v0.4.35)
774+
* github.com/openziti/secretstream: [v0.1.41 -> v0.1.47](https://github.com/openziti/secretstream/compare/v0.1.41...v0.1.47)
775+
* github.com/openziti/storage: [v0.4.31 -> v0.4.38](https://github.com/openziti/storage/compare/v0.4.31...v0.4.38)
720776
* [Issue #122](https://github.com/openziti/storage/issues/122) - StringFuncNode has incorrect nil check, allowing panic
721777
* [Issue #120](https://github.com/openziti/storage/issues/120) - Change post tx commit constraint handling order
722778
* [Issue #119](https://github.com/openziti/storage/issues/119) - Add ContextDecorator API
723779

724-
* github.com/openziti/transport/v2: [v2.0.198 -> v2.0.205](https://github.com/openziti/transport/compare/v2.0.198...v2.0.205)
780+
* github.com/openziti/transport/v2: [v2.0.198 -> v2.0.209](https://github.com/openziti/transport/compare/v2.0.198...v2.0.209)
725781
* github.com/openziti/xweb/v3: [v2.3.4 -> v3.0.3](https://github.com/openziti/xweb/compare/v2.3.4...v3.0.3)
726782
* [Issue #32](https://github.com/openziti/xweb/issues/32) - watched identities sometimes don't reload when changed
727783

728-
* github.com/openziti/ziti: [v1.7.0 -> v1.8.0](https://github.com/openziti/ziti/compare/v1.7.0...v1.8.0)
784+
* github.com/openziti/ziti/v2: [v1.7.0 -> v2.0.0](https://github.com/openziti/ziti/compare/v1.7.0...v2.0.0)
785+
* [Issue #3599](https://github.com/openziti/ziti/issues/3599) - Add gap detection and handling to router data model
786+
* [Issue #3074](https://github.com/openziti/ziti/issues/3074) - Dynamic cost range is too limited
787+
* [Issue #3558](https://github.com/openziti/ziti/issues/3558) - terminator cost increased on egress dial success, not on circuit completion
788+
* [Issue #3556](https://github.com/openziti/ziti/issues/3556) - global circuit costs not cleared when terminator is deleted
789+
* [Issue #3557](https://github.com/openziti/ziti/issues/3557) - costing calculation for the weighted terminator selection strategy is incorrect
790+
* [Issue #2512](https://github.com/openziti/ziti/issues/2512) - Return circuit ID and error in dial failures
791+
* [Issue #3569](https://github.com/openziti/ziti/issues/3569) - Version 2.0+ routers should not connect to controllers which do not support JWT formatted legacy sessions
792+
* [Issue #3565](https://github.com/openziti/ziti/issues/3565) - Link dialer save 'is first conn' true, so all dials claim to be first, causing potential race condition
793+
* [Issue #3550](https://github.com/openziti/ziti/issues/3550) - Support multi-underlay control channels
794+
* [Issue #3535](https://github.com/openziti/ziti/issues/3535) - Remove the legacy xgress_edge_tunnel implementation
795+
* [Issue #3547](https://github.com/openziti/ziti/issues/3547) - Add support for sending the dialing identity id and name to the hosting sdk
796+
* [Issue #3541](https://github.com/openziti/ziti/issues/3541) - Remove option to disable the router data model in the controller
797+
* [Issue #3540](https://github.com/openziti/ziti/issues/3540) - Handle UDP difference between proxy and tproxy implementations
798+
* [Issue #3527](https://github.com/openziti/ziti/issues/3527) - ER/T UDP tunnels keep closed connections for 30s, preventing potential new good connections in that time
799+
* [Issue #3526](https://github.com/openziti/ziti/issues/3526) - ER/T half-close logic is incorrect
800+
* [Issue #3524](https://github.com/openziti/ziti/issues/3524) - Provide more error context to SDKs for terminator errors
729801
* [Issue #3509](https://github.com/openziti/ziti/issues/3509) - Enforce policy on the router for oidc sessions, by closing open circuits and terminators when service access is lost
802+
* [Issue #3531](https://github.com/openziti/ziti/issues/3531) - Remove created/updated/deleted terminator events. Obsoleted by entity change events.
803+
* [Issue #3532](https://github.com/openziti/ziti/issues/3532) - Removed deprecated create identity <type> subcommands
804+
* [Issue #3521](https://github.com/openziti/ziti/issues/3521) - Cleanup CLI to remove calls to os.Exit to be embed friendlier
805+
* [Issue #3516](https://github.com/openziti/ziti/issues/3516) - Remove support for create terminator v1
806+
* [Issue #3512](https://github.com/openziti/ziti/issues/3512) - Remove legacy link management code from the controller
807+
* [Issue #3511](https://github.com/openziti/ziti/issues/3511) - router proxy mode fails to resolve interface if binding is 0.0.0.0
730808
* [Issue #3503](https://github.com/openziti/ziti/issues/3503) - Allow routers to request current cluster membership information
731809
* [Issue #3501](https://github.com/openziti/ziti/issues/3501) - Get cluster membership information from raft directly, rather than trying to cache it in the DB
732810
* [Issue #3500](https://github.com/openziti/ziti/issues/3500) - Set a router data model timeline when initializing a new HA setup, rather than letting it stay blank

go.mod

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ require (
2222
github.com/fatih/color v1.18.0
2323
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa
2424
github.com/gaissmai/extnetip v1.3.1
25-
github.com/go-acme/lego/v4 v4.31.0
25+
github.com/go-acme/lego/v4 v4.32.0
2626
github.com/go-jose/go-jose/v4 v4.1.3
2727
github.com/go-openapi/errors v0.22.6
2828
github.com/go-openapi/jsonpointer v0.22.4
@@ -66,10 +66,10 @@ require (
6666
github.com/openziti/identity v1.0.125
6767
github.com/openziti/jwks v1.0.6
6868
github.com/openziti/metrics v1.4.3
69-
github.com/openziti/runzmd v1.0.88
69+
github.com/openziti/runzmd v1.0.89
7070
github.com/openziti/sdk-golang v1.4.2
7171
github.com/openziti/secretstream v0.1.47
72-
github.com/openziti/storage v0.4.37
72+
github.com/openziti/storage v0.4.38
7373
github.com/openziti/transport/v2 v2.0.209
7474
github.com/openziti/x509-claims v1.0.3
7575
github.com/openziti/xweb/v3 v3.0.3
@@ -93,7 +93,7 @@ require (
9393
go.uber.org/atomic v1.11.0
9494
go4.org v0.0.0-20260112195520-a5071408f32f
9595
golang.org/x/crypto v0.48.0
96-
golang.org/x/exp v0.0.0-20260112195511-716be5621a96
96+
golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa
9797
golang.org/x/net v0.50.0
9898
golang.org/x/oauth2 v0.35.0
9999
golang.org/x/sync v0.19.0
@@ -114,7 +114,7 @@ require (
114114
github.com/MichaelMure/go-term-text v0.3.1 // indirect
115115
github.com/alecthomas/chroma v0.10.0 // indirect
116116
github.com/andybalholm/brotli v1.2.0 // indirect
117-
github.com/antchfx/xpath v1.3.5 // indirect
117+
github.com/antchfx/xpath v1.3.6 // indirect
118118
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
119119
github.com/armon/go-metrics v0.4.1 // indirect
120120
github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c // indirect
@@ -124,7 +124,7 @@ require (
124124
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
125125
github.com/cespare/xxhash/v2 v2.3.0 // indirect
126126
github.com/clipperhouse/stringish v0.1.1 // indirect
127-
github.com/clipperhouse/uax29/v2 v2.4.0 // indirect
127+
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
128128
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
129129
github.com/creack/pty v1.1.11 // indirect
130130
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
@@ -150,7 +150,7 @@ require (
150150
github.com/go-openapi/swag/typeutils v0.25.4 // indirect
151151
github.com/go-openapi/swag/yamlutils v0.25.4 // indirect
152152
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
153-
github.com/gomarkdown/markdown v0.0.0-20250810172220-2e2c11897d1a // indirect
153+
github.com/gomarkdown/markdown v0.0.0-20260217112301-37c66b85d6ab // indirect
154154
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
155155
github.com/hashicorp/go-metrics v0.5.4 // indirect
156156
github.com/hashicorp/go-msgpack/v2 v2.1.5 // indirect
@@ -163,7 +163,7 @@ require (
163163
github.com/lufia/plan9stats v0.0.0-20260216142805-b3301c5f2a88 // indirect
164164
github.com/mattn/go-colorable v0.1.14 // indirect
165165
github.com/mattn/go-isatty v0.0.20 // indirect
166-
github.com/mattn/go-runewidth v0.0.19 // indirect
166+
github.com/mattn/go-runewidth v0.0.20 // indirect
167167
github.com/mattn/go-tty v0.0.3 // indirect
168168
github.com/mdlayher/socket v0.5.1 // indirect
169169
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
@@ -208,8 +208,8 @@ require (
208208
go.opentelemetry.io/otel/metric v1.40.0 // indirect
209209
go.opentelemetry.io/otel/trace v1.40.0 // indirect
210210
go.yaml.in/yaml/v3 v3.0.4 // indirect
211-
golang.org/x/mod v0.32.0 // indirect
212-
golang.org/x/tools v0.41.0 // indirect
211+
golang.org/x/mod v0.33.0 // indirect
212+
golang.org/x/tools v0.42.0 // indirect
213213
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
214214
nhooyr.io/websocket v1.8.17 // indirect
215215
)

0 commit comments

Comments
 (0)