ziti

The parent project for OpenZiti. Here you will find the executables for a fully zero trust, application embedded, programmable network @OpenZiti

APACHE-2.0 License

Downloads
3.1K
Stars
2K
Committers
48

Bot releases are visible (Hide)

ziti - v1.1.11 Latest Release

Published by github-actions[bot] about 1 month ago

Release 1.1.11

What's New

  • This release updates to Go v1.23
  • Updates to the latest version of golangci-lint, to allow it to work with the new version of Go
  • Linter fixes to address issues caught by updated linter
ziti - v1.1.10

Published by github-actions[bot] about 2 months ago

Release 1.1.10

What's New

  • Bug fixes, enhancements and continuing progress on controller HA

Component Updates and Bug Fixes

ziti - v1.1.9

Published by github-actions[bot] about 2 months ago

Release 1.1.9

What's New

  • Bug fixes, enhancements and continuing progress on controller HA
  • Includes a performance update (Issue #2340) which should improve
    connection ramp times. Previously circuits would start with a relatively low window size and ramp slowly. Circuits
    will now start with a large initial window size and scale back if they can't keep up

Component Updates and Bug Fixes

ziti - v1.1.8

Published by github-actions[bot] 3 months ago

Release 1.1.8

What's New

  • Bug fixes, enhancements and continuing progress on controller HA

Component Updates and Bug Fixes

  • github.com/openziti/edge-api: v0.26.20 -> v0.26.23

    • Issue #120 - Add API for retrieving services referencing a config
    • Issue #121 - Add API for retrieving the set of attribute roles used by posture checks
  • github.com/openziti/sdk-golang: v0.23.38 -> v0.23.39

    • Issue #596 - SDK should submit selected config types to auth and service list APIs
    • Issue #593 - SDK Golang OIDC Get API Session Returns Wrong Value
  • github.com/openziti/storage: v0.2.47 -> v0.3.0

    • Issue #80 - Set indexes aren't cleaned up when referenced entities are deleted, only when they change
    • Issue #78 - Allow searching for things without case sensitivity
  • github.com/openziti/ziti: v1.1.7 -> v1.1.8

    • Issue #2121 - Use router data model for edge router tunnel
    • Issue #2245 - Add ability to retrieve a list of services that reference a config
    • Issue #2089 - Enhance Management API to list Posture Check Roles
    • Issue #2209 - /edge/v1/external-jwt-signers needs to be open
    • Issue #2010 - Add config information to router data model
    • Issue #1990 - Implement subscriber model for identity/service events in router
    • Issue #2240 - Secondary ext-jwt Auth Policy check incorrectly requires primary ext-jwt auth to be enabled
ziti - v1.1.7

Published by github-actions[bot] 3 months ago

Release 1.1.7

What's New

  • Release actions fixes
  • Fix for a flaky acceptance test
ziti - v1.1.6

Published by github-actions[bot] 3 months ago

Release 1.1.6

What's New

  • Trust Domain Configuration
  • Controller HA Beta 2

Trust Domain Configuration

OpenZiti controllers from this release forward will now require a trust domain to be configured.
High Availability (HA) controllers already have this requirement. HA Controllers configure their trust domain via SPIFFE
ids that are embedded in x509 certificates.

For feature parity, non-HA controllers will now have this same requirement. However, as re-issuing certificates is not
always easily done. To help with the transition, non-HA controllers will have the ability to have their trust domain
sourced from the controller configuration file through the root configuration value trustDomain. The configuration
field which takes a string that must be URI hostname compatible (see: https://github.com/spiffe/spiffe/blob/main/standards/SPIFFE-ID.md).
If this value is not defined, a trust domain will be generated from the root CA certificate of the controller.

For networks that will be deployed after this change, it is highly suggested that a SPIFFE id is added to certificates.
The ziti pki create ... tooling supports the --spiffe-id option to help handle this scenario.

Generated Trust Domain Log Messages

The following log messages are examples of warnings produced when a controller is using a generated trust domain:

WARNING this environment is using a default generated trust domain [spiffe://d561decf63d229d66b07de627dbbde9e93228925], 
  it is recommended that a trust domain is specified in configuration via URI SANs or the 'trustDomain' field

WARNING this environment is using a default generated trust domain [spiffe://d561decf63d229d66b07de627dbbde9e93228925], 
  it is recommended that if network components have enrolled that the generated trust domain be added to the 
  configuration field 'additionalTrustDomains'

Trust domain resolution:

  • Non-HA controllers

    • Prefers SPIFFE ids in x509 certificate URI SANs, looking at the leaf up the signing chain
    • Regresses to trustDomain in the controller configuration file if not found
    • Regress to generating a trust domain from the server certificates root CA, if the above do not resolve
  • HA Controllers

    • Requires x509 SPIFFE ids in x509 certificate URI SANs

Additional Trust Domains

When moving between trust domains (i.e. from the default generated to a new named one), the controller supports having
other trust domains. The trust domains do not replace certificate chain validation, which is still checked and enforced.

Additional trust domains are configured in the controller configuration file under the root field
additionalTrustDomains. This field is an array of hostname safe strings.

The most common use case for this is field is if a network has issued certificates using the generated trust domain and
now wants to transition to a explicitly defined one.

Controller HA Beta 2

This release can be run in HA mode. The code is still beta, as we're still finding and fixing bugs. Several bugs
have been fixed since Beta 1 and c-based SDKs and tunnelers now work in HA mode. The smoketest can now be run
with HA controllers and clients.

For more information:

Component Updates and Bug Fixes

  • github.com/openziti/storage: v0.2.45 -> v0.2.46

    • Issue #76 - Add support for non-boltz symbols to the the boltz stores
  • github.com/openziti/ziti: v1.1.5 -> v1.1.6

    • Issue #2171 - Routers should consider control channels unresponsive if they are not connected
    • Issue #2219 - Add inspection for router connections
    • Issue #2195 - cached data model file set to
    • Issue #2222 - Add way to get read-only status from cluster nodes
    • Issue #2191 - Change raft list cluster members element name from values to data to match rest of REST api
    • Issue #785 - ziti edge update service-policy to empty/no posture checks fails
    • Issue #2205 - Merge fabric and edge model code
    • Issue #2165 - Add network id
ziti - v1.1.5

Published by github-actions[bot] 4 months ago

Release 1.1.5

What's New

  • Bug fixes

Component Updates and Bug Fixes

ziti - v1.1.4

Published by github-actions[bot] 4 months ago

Release 1.1.4

What's New

  • Bug fixes
  • Controller HA Beta 1

Controller HA Beta 1

This release can be run in HA mode. The code is still beta, as we're still finding and fixing bugs. Several bugs
have been fixed since Alpha 3 and c-based SDKs and tunnelers now work in HA mode. The smoketest can now be run
with HA controllers and clients.

For more information:

Component Updates and Bug Fixes

ziti -

Published by github-actions[bot] 5 months ago

Release 1.1.3

What's New

  • Sticky Terminator Selection
  • Linux and Docker deployments log formats no longer default to the simplified format option and now use logging library
    defaults: json for non-interactive, text for interactive.

NOTE: This release is the first since 1.0.0 to be marked promoted from pre-release. Be sure to check the release notes
for the rest of the post-1.0.0 releases to get the full set of changes.

Stick Terminator Strategy

This release introduces a new terminator selection strategy sticky. On every dial it will return a token to the
dialer, which represents the terminator used in the dial. This token maybe passed in on subsequent dials. If no token
is passed in, the strategy will work the same as the smartrouting strategy. If a token is passed in, and the
terminator is still valid, the same terminator will be used for the dial. A terminator will be consideder valid if
it still exists and there are no terminators with a higher precedence.

This is currently only supported in the Go SDK.

Go SDK Example

ziti edge create service test --terminator-strategy sticky
	conn := clientContext.Dial("test")
	token := conn.Conn.GetStickinessToken()
	_ = conn.Close()

	dialOptions := &ziti.DialOptions{
		ConnectTimeout:  time.Second,
		StickinessToken: token,
	}
	conn = clientContext.DialWithOptions("test", dialOptions))
	nextToken := conn.Conn.GetStickinessToken()
	_ = conn.Close()

Component Updates and Bug Fixes

ziti - https://github.com/openziti/ziti/releases/tag/v1.1.2

Published by github-actions[bot] 5 months ago

Release 1.1.2

What's New

  • Bug fixes and minor enhancements

Component Updates and Bug Fixes

  • github.com/openziti/sdk-golang: v0.23.32 -> v0.23.35
  • github.com/openziti/ziti: v1.1.1 -> v1.1.2
    • Issue #2032 - Auto CA Enrollment Fails w/ 400 Bad Request
    • Issue #2026 - Root Version Endpoint Handling 404s
    • Issue #2002 - JWKS endpoints may not refresh on new KID
    • Issue #2007 - Identities for edge routers with tunneling enabled sometimes show hasEdgeRouterConnection=false even though everything is OK
    • Issue #1983 - delete of non-existent entity causes panic when run on follower controller
ziti - v0.34.3

Published by github-actions[bot] 6 months ago

This is a re-release of v1.0.0 to address a bug in the autonomous docker image, which doesn't correct handle changes to the major version.

ziti - https://github.com/openziti/ziti/releases/tag/v1.1.1

Published by github-actions[bot] 6 months ago

Release 1.1.1

What's New

  • HA Alpha-3
  • Bug fixes and minor enhancements

HA Alpha 3

This release can be run in HA mode. The code is still alpha, as we're still finding and fixing bugs.

For more information:

New Contributors

Thanks to new contributors

  • @Vrashabh-Sontakke

Component Updates and Bug Fixes

ziti - https://github.com/openziti/ziti/releases/tag/v1.1.0

Published by github-actions[bot] 6 months ago

Release 1.1.0

What's New

  • HA Alpha2
  • Deployments Alpha
    • Linux packages provide systemd services for controller and router. Both depend on existing package openziti which provides the ziti command line tool.
      • openziti-controller provides ziti-controller.service
      • openziti-router provides ziti-router.service
    • Container images for controller and router now share the bootstrapping logic with the packages, so they
      support the same configuration options.

HA Alpha2

This release can be run in HA mode. The code is still alpha, so there are still some bugs and missing features,
however basic functionality work with the exceptions noted. See the HA Documementation
for instructions on setting up an HA cluster.

Known Issues

  • JWT Session exchange isn't working with Go SDK clients
    • This means Go clients will need to be restarted once their sessions expire
  • Service/service policy changes might not be reflected in routers
    • Changes to policy may not yet properly sync to the routers, causing unexpected behavior with ER/Ts running in HA mode

More information can be found on the HA Project Board

Component Updates and Bug Fixes

ziti - https://github.com/openziti/ziti/releases/tag/v1.0.0

Published by github-actions[bot] 6 months ago

Release 1.0.0

About 1.0

What does marking OpenZiti as 1.0 mean?

Backwards Compatibility

We've guaranteed API stability for SDK clients for years and worked hard to ensure that routers
and controllers would be backwards and forward compatible. However, we have had a variety of
management API changes and CLI changes. For post 1.0 releases we expect to make additions to the
APIs and CLI, but won't remove anything until it's been first marked as deprecated and then only
with a major version bump.

Stability and Scale

Recent releases have seen additional testing using chaos testing techniques. These tests involve
setting up relatively large scale environments, knocking out various components and then verifying
that the network is able to return to a stable state. These test are run for hours to try and
eliminate race conditions and distributed state machine problems.

OpenZiti is also being used as underlying infrastrcture for the zrok public service. Use of this
network has grown quickly and proven that it's possible to build ziti native apps that can scale
up.

Backward Incompatible Changes to pre-1.0 releases

Administrators no longer have access to dial/bind all services by default. See below for details.

What's New

  • Administrators no longer have access to dial/bind all services by default.
  • TLS Handshakes can now be rate limited in the controller
  • TLS Handshake timeouts can now be set on the controller when using ALPN
  • Bugfixes

DEFAULT Bind/Dial SERVICE PERMISSIONS FOR Admin IDENTITIES HAVE CHANGED

Admin identities were able to Dial and Bind all services regardless of the effective service policies
prior to this release. This could lead to a confusing situation where a tunneler that was assuming an Admin
identity would put itself into an infinite connect-loop when a service's host.v1 address overlapped with
any addresses in its intercept configuration.

Please create service policies to grant Bind or Dial permissions to Admin identities as needed.

TLS Handshake

A TLS handhshake rate limiter can be enabled. This is useful in cases where there's a flood of TLS requests and the
controller can't handle them all. It can get into a state where it can't respond to TLS handshakes quickly enough,
so the clients time out. They then retry, adding to the the load. The controller ends up wasting time doing work
that isn't use.

This uses the same rate limiting as the auth rate limiter.

Additionally the server side handshake timeout can now be configured.

Configuration:

tls: 
  handshakeTimeout: 15s

  rateLimiter:
    # if disabled, no tls handshake rate limiting with be enforced
    enabled: true
    # the smallest window size for tls handshakes
    minSize: 5
    # the largest allowed window size for tls handshakes
    maxSize: 5000
    # after how long to consider a handshake abandoned if neither success nor failure was reported
    timeout: 30s

New metrics:

  • tls_handshake_limiter.in_process - number of TLS handshakes in progress
  • tls_handshake_limiter.window_size - number of TLS handhshakes allowed concurrently
  • tls_handshake_limiter.work_timer - timer tracking how long TLS handshakes are taking

Component Updates and Bug Fixes

ziti - https://github.com/openziti/ziti/releases/tag/v0.34.2

Published by github-actions[bot] 7 months ago

Release 0.34.2

What's New

  • The circuit id is now available in the SDK on the client and hosting side
    • Requires 0.34.2+ routers
    • Requests SDK support. Currently supported in the Go SDK 0.23.11+
  • Bug fixes

Component Updates and Bug Fixes

ziti - https://github.com/openziti/ziti/releases/tag/v0.34.1

Published by github-actions[bot] 7 months ago

Release 0.34.1

What's New

  • Updates version of go to 1.22.x
    • As usual when updating the go version, this is the only change in this release
ziti - https://github.com/openziti/ziti/releases/tag/v0.34.0

Published by github-actions[bot] 7 months ago

Release 0.34.0

What's New

  • Bug fixes and performance enhancements
  • Version number is bumped as a large chunk of HA was merged up. The next version bump is likely to bring HA to alpha status.

Component Updates and Bug Fixes

ziti - https://github.com/openziti/ziti/releases/tag/v0.33.1

Published by github-actions[bot] 7 months ago

Release 0.33.1

What's New

  • Backward compatibility router <-> controller fix to address metrics parsing panic

Component Updates and Bug Fixes

ziti - https://github.com/openziti/ziti/releases/tag/v0.33.0

Published by github-actions[bot] 7 months ago

Release 0.33.0

What's New

  • SDK Terminator stability improvements
  • Minor feature updates and bug fixes

SDK Terminator stability improvements

This release was focused on creating a chaos test for SDK terminators, running it and fixing any issues found.
The test repeatedly and randomly restarts the controller, routers and tunnelers then verifies that terminators
end up in the correct state.

The following tools were also used/added to aid in diagnosing and fixing issues:

  • ziti fabric validate router-sdk-terminators
    • Compares the controller state with the router state
  • ziti fabric validate terminators
    • Checks each selected terminator to ensure it's still valid on the router and/or sdk
  • ziti fabric inspect sdk-terminators
    • Allows inspecting each routers terminator state
  • ziti fabric inspect router-messaging
    • Allows inspecting what the controller has queued for router state sync and terminator validations
  • ziti edge validate service-hosting
    • Shows how many terminators each identity which can host a service has

Several changes were made to the terminator code to ensure that terminators are properly created and cleaned up.
The routers now use an adaptive rate limiter to control how fast they send terminator related requests to the
controller. For this to work properly, the rate limiting on the controller must be enabled, so it can report
back to the routers when it's got too much work.

Component Updates and Bug Fixes

  • github.com/openziti/edge-api: v0.26.10 -> v0.26.12
  • github.com/openziti/ziti: v0.32.2 -> v0.33.0
    • Issue #1815 - Panic if api session sync failed handler is called twice in the router
    • Issue #1794 - Add SDK terminator chaos test and fix any bugs found as part of chaos testing
    • Issue #1781 - Improve performance when adding intercepted services
    • Issue #1369 - Allow filtering by policy type when listing identities for service or services for identity
    • Issue #1791 - route dial isn't checking for network timeouts correctly
    • Issue #1204 - ziti cli identity tags related flags misbehaving
    • Issue #987 - "ziti create config router edge" doesn't know about --tunnelerMode proxy
    • Issue #652 - Update CLI script M1 Support when github actions allows
ziti - https://github.com/openziti/ziti/releases/tag/v0.32.2

Published by github-actions[bot] 8 months ago

Release 0.32.2

What's New

  • Terminator performance improvements
  • API Rate Limiter enabled by default

Component Updates and Bug Fixes