From 5042b1b9e46c2ce6bd2d19ed3294a16fcc94bf5b Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sat, 8 Apr 2023 16:07:08 -0400 Subject: [PATCH 01/51] add support to ziti edge login for certs and ext-jwt signers --- ziti/cmd/edge/login.go | 122 ++++++++++++++++++++++++++++++++-------- ziti/util/identities.go | 4 +- ziti/util/rest.go | 81 ++++++++------------------ 3 files changed, 121 insertions(+), 86 deletions(-) diff --git a/ziti/cmd/edge/login.go b/ziti/cmd/edge/login.go index 572a3970e..dba42c48d 100644 --- a/ziti/cmd/edge/login.go +++ b/ziti/cmd/edge/login.go @@ -17,6 +17,7 @@ package edge import ( + "crypto/tls" "fmt" "github.com/Jeffail/gabs" "github.com/openziti/foundation/v2/term" @@ -27,14 +28,16 @@ import ( "github.com/pkg/errors" "github.com/spf13/cobra" "io" + "net/http" "net/url" + "os" "path/filepath" "strings" "time" ) -// loginOptions are the flags for login commands -type loginOptions struct { +// LoginOptions are the flags for login commands +type LoginOptions struct { api.Options Username string Password string @@ -43,11 +46,14 @@ type loginOptions struct { ReadOnly bool Yes bool IgnoreConfig bool + ClientCert string + ClientKey string + ExtJwt string } // newLoginCmd creates the command func newLoginCmd(out io.Writer, errOut io.Writer) *cobra.Command { - options := &loginOptions{ + options := &LoginOptions{ Options: api.Options{ CommonOptions: common.CommonOptions{Out: out, Err: errOut}, }, @@ -73,17 +79,21 @@ func newLoginCmd(out io.Writer, errOut io.Writer) *cobra.Command { cmd.Flags().StringVarP(&options.Username, "username", "u", "", "username to use for authenticating to the Ziti Edge Controller ") cmd.Flags().StringVarP(&options.Password, "password", "p", "", "password to use for authenticating to the Ziti Edge Controller, if -u is supplied and -p is not, a value will be prompted for") cmd.Flags().StringVarP(&options.Token, "token", "t", "", "if an api token has already been acquired, it can be set in the config with this option. This will set the session to read only by default") - cmd.Flags().StringVarP(&options.CaCert, "cert", "c", "", "additional root certificates used by the Ziti Edge Controller") + cmd.Flags().StringVarP(&options.CaCert, "cert", "", "", "additional root certificates used by the Ziti Edge Controller") cmd.Flags().BoolVar(&options.ReadOnly, "read-only", false, "marks this login as read-only. Note: this is not a guarantee that nothing can be changed on the server. Care should still be taken!") cmd.Flags().BoolVarP(&options.Yes, "yes", "y", false, "If set, responds to prompts with yes. This will result in untrusted certs being accepted or updated.") cmd.Flags().BoolVar(&options.IgnoreConfig, "ignore-config", false, "If set, does not use value from the config file for hostname or username. Values must be entered or will be prompted for.") + cmd.Flags().StringVarP(&options.ClientCert, "client-cert", "c", "", "A certificate used to authenticate") + cmd.Flags().StringVarP(&options.ClientKey, "client-key", "k", "", "A certificate used to authenticate") + cmd.Flags().StringVarP(&options.ExtJwt, "ext-jwt", "e", "", "A JWT from an external provider used to authenticate") + options.AddCommonFlags(cmd) return cmd } // Run implements this command -func (o *loginOptions) Run() error { +func (o *LoginOptions) Run() error { config, configFile, err := util.LoadRestClientConfig() if err != nil { return err @@ -140,7 +150,8 @@ func (o *loginOptions) Run() error { o.Println("NOTE: When using --token the saved identity will be marked as read-only unless --read-only=false is provided") } - if o.Token == "" { + body := "{}" + if o.Token == "" && o.ClientCert == "" && o.ExtJwt == "" { for o.Username == "" { if defaultId := config.EdgeIdentities[id]; defaultId != nil && defaultId.Username != "" && !o.IgnoreConfig { o.Username = defaultId.Username @@ -160,28 +171,28 @@ func (o *loginOptions) Run() error { _, _ = container.SetP(o.Username, "username") _, _ = container.SetP(o.Password, "password") - body := container.String() + body = container.String() + } - jsonParsed, err := util.EdgeControllerLogin(host, o.CaCert, body, o.Out, o.OutputJSONResponse, o.Options.Timeout, o.Options.Verbose) + jsonParsed, err := login(o, host, body) - if err != nil { - return err - } + if err != nil { + return err + } - if !jsonParsed.ExistsP("data.token") { - return fmt.Errorf("no session token returned from login request to %v. Received: %v", host, jsonParsed.String()) - } + if !jsonParsed.ExistsP("data.token") { + return fmt.Errorf("no session token returned from login request to %v. Received: %v", host, jsonParsed.String()) + } - var ok bool - o.Token, ok = jsonParsed.Path("data.token").Data().(string) + var ok bool + o.Token, ok = jsonParsed.Path("data.token").Data().(string) - if !ok { - return fmt.Errorf("session token returned from login request to %v is not in the expected format. Received: %v", host, jsonParsed.String()) - } + if !ok { + return fmt.Errorf("session token returned from login request to %v is not in the expected format. Received: %v", host, jsonParsed.String()) + } - if !o.OutputJSONResponse { - o.Printf("Token: %v\n", o.Token) - } + if !o.OutputJSONResponse { + o.Printf("Token: %v\n", o.Token) } loginIdentity := &util.RestClientEdgeIdentity{ @@ -201,7 +212,7 @@ func (o *loginOptions) Run() error { return err } -func (o *loginOptions) ConfigureCerts(host string, ctrlUrl *url.URL) error { +func (o *LoginOptions) ConfigureCerts(host string, ctrlUrl *url.URL) error { isServerTrusted, err := util.IsServerTrusted(host) if err != nil { return err @@ -275,7 +286,7 @@ func (o *loginOptions) ConfigureCerts(host string, ctrlUrl *url.URL) error { return nil } -func (o *loginOptions) askYesNo(prompt string) (bool, error) { +func (o *LoginOptions) askYesNo(prompt string) (bool, error) { filter := &yesNoFilter{} if _, err := o.ask(prompt, filter.Accept); err != nil { return false, err @@ -283,7 +294,7 @@ func (o *loginOptions) askYesNo(prompt string) (bool, error) { return filter.result, nil } -func (o *loginOptions) ask(prompt string, f func(string) bool) (string, error) { +func (o *LoginOptions) ask(prompt string, f func(string) bool) (string, error) { for { val, err := term.Prompt(prompt) if err != nil { @@ -314,3 +325,64 @@ func (self *yesNoFilter) Accept(s string) bool { return false } + +// EdgeControllerLogin will authenticate to the given Edge Controller +func login(o *LoginOptions, url string, authentication string) (*gabs.Container, error) { + client := util.NewClient() + cert := o.CaCert + out := o.Out + logJSON := o.OutputJSONResponse + timeout := o.Timeout + verbose := o.Verbose + method := "password" + if cert != "" { + client.SetRootCertificate(cert) + } + authHeader := "" + if o.ExtJwt != "" { + auth, err := os.ReadFile(o.ExtJwt) + if err != nil { + return nil, fmt.Errorf("couldn't load jwt file at %s: %v", o.ExtJwt, err) + } + method = "ext-jwt" + authHeader = "Bearer " + string(auth) + client.SetHeader("Authorization", authHeader) + } else { + if o.ClientCert != "" { + clientCert, err := tls.LoadX509KeyPair(o.ClientCert, o.ClientKey) + if err != nil { + return nil, fmt.Errorf("can't load client certificate: %s with key %s: %v", o.ClientCert, o.ClientKey, err) + } + client.SetCertificates(clientCert) + method = "cert" + } + } + + resp, err := client. + SetTimeout(time.Duration(time.Duration(timeout)*time.Second)). + SetDebug(verbose). + R(). + SetQueryParam("method", method). + SetHeader("Content-Type", "application/json"). + SetBody(authentication). + Post(url + "/authenticate") + + if err != nil { + return nil, fmt.Errorf("unable to authenticate to %v. Error: %v", url, err) + } + + if resp.StatusCode() != http.StatusOK { + return nil, fmt.Errorf("unable to authenticate to %v. Status code: %v, Server returned: %v", url, resp.Status(), util.PrettyPrintResponse(resp)) + } + + if logJSON { + util.OutputJson(out, resp.Body()) + } + + jsonParsed, err := gabs.ParseJSON(resp.Body()) + if err != nil { + return nil, fmt.Errorf("unable to parse response from %v. Server returned: %v", url, resp.String()) + } + + return jsonParsed, nil +} diff --git a/ziti/util/identities.go b/ziti/util/identities.go index b63b3da7c..56d0ea940 100644 --- a/ziti/util/identities.go +++ b/ziti/util/identities.go @@ -102,7 +102,7 @@ func (self *RestClientEdgeIdentity) NewTlsClientConfig() (*tls.Config, error) { } func (self *RestClientEdgeIdentity) NewClient(timeout time.Duration, verbose bool) (*resty.Client, error) { - client := newClient() + client := NewClient() if self.CaCert != "" { client.SetRootCertificate(self.CaCert) } @@ -198,7 +198,7 @@ func (self *RestClientFabricIdentity) NewClient(timeout time.Duration, verbose b if err != nil { return nil, errors.Wrap(err, "unable to load identity") } - client := newClient() + client := NewClient() client.SetTLSClientConfig(id.ClientTLSConfig()) client.SetTimeout(timeout) client.SetDebug(verbose) diff --git a/ziti/util/rest.go b/ziti/util/rest.go index a9aa17155..4e17634d5 100644 --- a/ziti/util/rest.go +++ b/ziti/util/rest.go @@ -81,7 +81,7 @@ func DownloadFile(filepath string, url string) (err error) { } // Use a 2-second timeout with a retry count of 5 -func newClient() *resty.Client { +func NewClient() *resty.Client { return resty. New(). SetTimeout(2 * time.Second). @@ -90,7 +90,7 @@ func newClient() *resty.Client { } func getRequest(verbose bool) *resty.Request { - return newClient(). + return NewClient(). SetDebug(verbose). R() } @@ -569,44 +569,7 @@ func Unzip(src, dest string) error { return nil } -// EdgeControllerLogin will authenticate to the given Edge Controller -func EdgeControllerLogin(url string, cert string, authentication string, out io.Writer, logJSON bool, timeout int, verbose bool) (*gabs.Container, error) { - client := newClient() - - if cert != "" { - client.SetRootCertificate(cert) - } - - resp, err := client. - SetTimeout(time.Duration(time.Duration(timeout)*time.Second)). - SetDebug(verbose). - R(). - SetQueryParam("method", "password"). - SetHeader("Content-Type", "application/json"). - SetBody(authentication). - Post(url + "/authenticate") - - if err != nil { - return nil, fmt.Errorf("unable to authenticate to %v. Error: %v", url, err) - } - - if resp.StatusCode() != http.StatusOK { - return nil, fmt.Errorf("unable to authenticate to %v. Status code: %v, Server returned: %v", url, resp.Status(), prettyPrintResponse(resp)) - } - - if logJSON { - outputJson(out, resp.Body()) - } - - jsonParsed, err := gabs.ParseJSON(resp.Body()) - if err != nil { - return nil, fmt.Errorf("unable to parse response from %v. Server returned: %v", url, resp.String()) - } - - return jsonParsed, nil -} - -func prettyPrintResponse(resp *resty.Response) string { +func PrettyPrintResponse(resp *resty.Response) string { out := resp.String() var prettyJSON bytes.Buffer if err := json.Indent(&prettyJSON, []byte(out), "", " "); err == nil { @@ -615,7 +578,7 @@ func prettyPrintResponse(resp *resty.Response) string { return out } -func outputJson(out io.Writer, data []byte) { +func OutputJson(out io.Writer, data []byte) { var prettyJSON bytes.Buffer if err := json.Indent(&prettyJSON, data, "", " "); err == nil { if _, err := fmt.Fprint(out, prettyJSON.String()); err != nil { @@ -654,11 +617,11 @@ func ControllerDetailEntity(api API, entityType, entityId string, logJSON bool, if resp.StatusCode() != http.StatusOK { return nil, fmt.Errorf("error listing %v in Ziti Edge Controller. Status code: %v, Server returned: %v", - queryUrl, resp.Status(), prettyPrintResponse(resp)) + queryUrl, resp.Status(), PrettyPrintResponse(resp)) } if logJSON { - outputJson(out, resp.Body()) + OutputJson(out, resp.Body()) } jsonParsed, err := gabs.ParseJSON(resp.Body()) @@ -715,11 +678,11 @@ func ControllerList(api API, path string, params url.Values, logJSON bool, out i if resp.StatusCode() != http.StatusOK { return nil, fmt.Errorf("error listing %v in Ziti Edge Controller. Status code: %v, Server returned: %v", - queryUrl, resp.Status(), prettyPrintResponse(resp)) + queryUrl, resp.Status(), PrettyPrintResponse(resp)) } if logJSON { - outputJson(out, resp.Body()) + OutputJson(out, resp.Body()) } jsonParsed, err := gabs.ParseJSON(resp.Body()) @@ -850,7 +813,7 @@ func ControllerCreate(api API, entityType string, body string, out io.Writer, lo url := baseUrl + "/" + entityType if logRequestJson { fmt.Printf("%v to %v\n", "POST", url) - outputJson(out, []byte(body)) + OutputJson(out, []byte(body)) fmt.Println() } @@ -862,11 +825,11 @@ func ControllerCreate(api API, entityType string, body string, out io.Writer, lo if resp.StatusCode() != http.StatusCreated { return nil, fmt.Errorf("error creating %v instance in Ziti Edge Controller at %v. Status code: %v, Server returned: %v", - entityType, baseUrl, resp.Status(), prettyPrintResponse(resp)) + entityType, baseUrl, resp.Status(), PrettyPrintResponse(resp)) } if logResponseJson { - outputJson(out, resp.Body()) + OutputJson(out, resp.Body()) } jsonParsed, err := gabs.ParseJSON(resp.Body()) @@ -900,7 +863,7 @@ func ControllerDelete(api API, entityType string, id string, body string, out io if logRequestJson { fmt.Printf("%v to %v\n", "POST", fullUrl) - outputJson(out, []byte(body)) + OutputJson(out, []byte(body)) fmt.Println() } @@ -916,11 +879,11 @@ func ControllerDelete(api API, entityType string, id string, body string, out io if resp.StatusCode() != http.StatusOK { return fmt.Errorf("error deleting %v instance in Ziti Edge Controller at %v. Status code: %v, Server returned: %v", - entityPath, baseUrl, resp.Status(), prettyPrintResponse(resp)) + entityPath, baseUrl, resp.Status(), PrettyPrintResponse(resp)) } if logResponseJson { - outputJson(out, resp.Body()) + OutputJson(out, resp.Body()) } return nil @@ -947,7 +910,7 @@ func ControllerUpdate(api API, entityType string, body string, out io.Writer, me if logRequestJson { fmt.Printf("%v to %v\n", method, url) - outputJson(out, []byte(body)) + OutputJson(out, []byte(body)) fmt.Println() } @@ -959,11 +922,11 @@ func ControllerUpdate(api API, entityType string, body string, out io.Writer, me if resp.StatusCode() != http.StatusOK && resp.StatusCode() != http.StatusAccepted { return nil, fmt.Errorf("error updating %v instance in Ziti Edge Controller at %v. Status code: %v, Server returned: %v", - entityType, baseUrl, resp.Status(), prettyPrintResponse(resp)) + entityType, baseUrl, resp.Status(), PrettyPrintResponse(resp)) } if logResponseJSON { - outputJson(out, resp.Body()) + OutputJson(out, resp.Body()) } if len(resp.Body()) == 0 { @@ -1009,11 +972,11 @@ func EdgeControllerVerify(entityType, id, body string, out io.Writer, logJSON bo if resp.StatusCode() != http.StatusOK { return fmt.Errorf("error verifying %v instance (%v) in Ziti Edge Controller at %v. Status code: %v, Server returned: %v", - entityType, id, baseUrl, resp.Status(), prettyPrintResponse(resp)) + entityType, id, baseUrl, resp.Status(), PrettyPrintResponse(resp)) } if logJSON { - outputJson(out, resp.Body()) + OutputJson(out, resp.Body()) } return nil @@ -1043,11 +1006,11 @@ func EdgeControllerRequest(entityType string, out io.Writer, logJSON bool, timeo if resp.StatusCode() != http.StatusOK { return nil, fmt.Errorf("error performing request [%s] %v instance in Ziti Edge Controller at %v. Status code: %v, Server returned: %v", - request.Method, entityType, baseUrl, resp.Status(), prettyPrintResponse(resp)) + request.Method, entityType, baseUrl, resp.Status(), PrettyPrintResponse(resp)) } if logJSON { - outputJson(out, resp.Body()) + OutputJson(out, resp.Body()) } if resp.Body() == nil { @@ -1068,7 +1031,7 @@ func EdgeControllerRequest(entityType string, out io.Writer, logJSON bool, timeo // on the version of the Edge Controller the API may be monolith on `/edge/` and `/` or split into // `/edge/management/` and `/edge/client/`. func EdgeControllerGetManagementApiBasePath(host string, cert string) string { - client := newClient() + client := NewClient() client.SetHostURL(host) From d062af02e2c5c6e2dbbff43ada0e9b7fc5f1b183 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sat, 8 Apr 2023 16:09:31 -0400 Subject: [PATCH 02/51] update changelog and add entry for ziti login --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8881a1b94..63e4172a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +# Release 0.27.9 + +## What's New + +* CLI additions for `ziti` to login with certificates or external-jwt-signers + +## Component Updates and Bug Fixes + +* none yet + # Release 0.27.8 ## What's New From 7ab91171846feef842424b68651b77b345576092 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sat, 8 Apr 2023 16:12:37 -0400 Subject: [PATCH 03/51] change the 'cert' flag to 'ca' --- ziti/cmd/edge/login.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ziti/cmd/edge/login.go b/ziti/cmd/edge/login.go index dba42c48d..d733915f4 100644 --- a/ziti/cmd/edge/login.go +++ b/ziti/cmd/edge/login.go @@ -79,7 +79,7 @@ func newLoginCmd(out io.Writer, errOut io.Writer) *cobra.Command { cmd.Flags().StringVarP(&options.Username, "username", "u", "", "username to use for authenticating to the Ziti Edge Controller ") cmd.Flags().StringVarP(&options.Password, "password", "p", "", "password to use for authenticating to the Ziti Edge Controller, if -u is supplied and -p is not, a value will be prompted for") cmd.Flags().StringVarP(&options.Token, "token", "t", "", "if an api token has already been acquired, it can be set in the config with this option. This will set the session to read only by default") - cmd.Flags().StringVarP(&options.CaCert, "cert", "", "", "additional root certificates used by the Ziti Edge Controller") + cmd.Flags().StringVarP(&options.CaCert, "ca", "", "", "additional root certificates used by the Ziti Edge Controller") cmd.Flags().BoolVar(&options.ReadOnly, "read-only", false, "marks this login as read-only. Note: this is not a guarantee that nothing can be changed on the server. Care should still be taken!") cmd.Flags().BoolVarP(&options.Yes, "yes", "y", false, "If set, responds to prompts with yes. This will result in untrusted certs being accepted or updated.") cmd.Flags().BoolVar(&options.IgnoreConfig, "ignore-config", false, "If set, does not use value from the config file for hostname or username. Values must be entered or will be prompted for.") From 338a2e5b39e49732d9ce166d3080e4f49f8240f9 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sat, 8 Apr 2023 16:19:56 -0400 Subject: [PATCH 04/51] add better changelog for flag changes --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63e4172a0..e1e882742 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,12 @@ ## What's New * CLI additions for `ziti` to login with certificates or external-jwt-signers +* NOTE: ziti edge login flag changes: + * `-c` flag has been changed to map to `--client-cert` + * `--cert` is now `--ca` and has no short flag representation + * `-e/--ext-jwt` allows a user to supply a file containing a jwt used with ext-jwt-signers to login + * `-c/--client-cert` allows a certificate to be supplied to login (used with `-k/--client-key`) + * `-k/--client-key` allows a key to be supplied to login (used with `-c/--client-cert`) ## Component Updates and Bug Fixes From cf88a8b204712da1159150270442152c56fbf0dd Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Tue, 11 Apr 2023 09:05:40 -0400 Subject: [PATCH 05/51] fix the description --- ziti/cmd/edge/login.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ziti/cmd/edge/login.go b/ziti/cmd/edge/login.go index d733915f4..58cdfe428 100644 --- a/ziti/cmd/edge/login.go +++ b/ziti/cmd/edge/login.go @@ -84,7 +84,7 @@ func newLoginCmd(out io.Writer, errOut io.Writer) *cobra.Command { cmd.Flags().BoolVarP(&options.Yes, "yes", "y", false, "If set, responds to prompts with yes. This will result in untrusted certs being accepted or updated.") cmd.Flags().BoolVar(&options.IgnoreConfig, "ignore-config", false, "If set, does not use value from the config file for hostname or username. Values must be entered or will be prompted for.") cmd.Flags().StringVarP(&options.ClientCert, "client-cert", "c", "", "A certificate used to authenticate") - cmd.Flags().StringVarP(&options.ClientKey, "client-key", "k", "", "A certificate used to authenticate") + cmd.Flags().StringVarP(&options.ClientKey, "client-key", "k", "", "The key to use with certificate authentication") cmd.Flags().StringVarP(&options.ExtJwt, "ext-jwt", "e", "", "A JWT from an external provider used to authenticate") options.AddCommonFlags(cmd) From 30a5dc5cba1adc429a233a9ec3bfda694b6610a8 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 30 Mar 2023 13:54:58 -0400 Subject: [PATCH 06/51] publish container images on release-next --- .github/workflows/main.yml | 14 ++++++- .github/workflows/publish-docker-images.yml | 41 +++++++++++++++------ .github/workflows/push-quickstart.yml | 2 +- docker-images/ziti-cli/Dockerfile | 2 +- docker-images/ziti-controller/Dockerfile | 3 +- docker-images/ziti-router/Dockerfile | 3 +- docker-images/ziti-tunnel/Dockerfile | 4 +- 7 files changed, 51 insertions(+), 18 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fbace0e06..3e81410c4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,6 +5,7 @@ on: branches: - main - release-v* + - release-next pull_request: workflow_dispatch: @@ -276,9 +277,18 @@ jobs: with: ziti-version: ${{ needs.publish.outputs.ZITI_VERSION }} - call-publish-docker-images: + call-publish-prerelease-docker-images: + if: github.ref == 'refs/heads/release-next' + name: Publish Pre-Release Docker Images + needs: publish + uses: ./.github/workflows/publish-docker-images.yml + secrets: inherit + with: + ziti-version: release-next + + call-publish-release-docker-images: if: github.ref == 'refs/heads/main' - name: Publish Docker Images + name: Publish Release Docker Images needs: publish uses: ./.github/workflows/publish-docker-images.yml secrets: inherit diff --git a/.github/workflows/publish-docker-images.yml b/.github/workflows/publish-docker-images.yml index 5e572a429..1e94d0895 100644 --- a/.github/workflows/publish-docker-images.yml +++ b/.github/workflows/publish-docker-images.yml @@ -4,7 +4,7 @@ on: workflow_call: inputs: ziti-version: - description: 'Ziti Release Version' + description: 'Tag or Branch Ref to Publish' type: string required: true @@ -13,6 +13,10 @@ jobs: runs-on: ubuntu-latest env: ZITI_VERSION: ${{ inputs.ziti-version || github.event.inputs.ziti-version }} + ZITI_CLI_IMAGE: ${{ vars.ZITI_CLI_IMAGE || 'docker.io/openziti/ziti-cli' }} + ZITI_CONTROLLER_IMAGE: ${{ vars.ZITI_CONTROLLER_IMAGE || 'docker.io/openziti/ziti-controller' }} + ZITI_ROUTER_IMAGE: ${{ vars.ZITI_ROUTER_IMAGE || 'docker.io/openziti/ziti-router' }} + ZITI_TUNNEL_IMAGE: ${{ vars.ZITI_TUNNEL_IMAGE || 'docker.io/openziti/ziti-tunnel' }} steps: - name: Checkout Workspace uses: actions/checkout@v3 @@ -40,11 +44,14 @@ jobs: - name: Set Up Container Image Tags for Base CLI Container env: - RELEASE_REPO: openziti/ziti-cli + IMAGE_REPO: ${{ env.ZITI_CLI_IMAGE }} id: tagprep_cli run: | DOCKER_TAGS="" - DOCKER_TAGS="${RELEASE_REPO}:${ZITI_VERSION},${RELEASE_REPO}:latest" + DOCKER_TAGS="${IMAGE_REPO}:${ZITI_VERSION}" + if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then + DOCKER_TAGS+=",${IMAGE_REPO}:latest" + fi echo "DEBUG: DOCKER_TAGS=${DOCKER_TAGS}" echo DOCKER_TAGS="${DOCKER_TAGS}" >> $GITHUB_OUTPUT @@ -65,11 +72,14 @@ jobs: - name: Set Up Container Image Tags for Controller Container env: - RELEASE_REPO: openziti/ziti-controller + IMAGE_REPO: ${{ env. ZITI_CONTROLLER_IMAGE }} id: tagprep_ctrl run: | DOCKER_TAGS="" - DOCKER_TAGS="${RELEASE_REPO}:${ZITI_VERSION},${RELEASE_REPO}:latest" + DOCKER_TAGS="${IMAGE_REPO}:${ZITI_VERSION}" + if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then + DOCKER_TAGS+=",${IMAGE_REPO}:latest" + fi echo "DEBUG: DOCKER_TAGS=${DOCKER_TAGS}" echo DOCKER_TAGS="${DOCKER_TAGS}" >> $GITHUB_OUTPUT @@ -85,15 +95,19 @@ jobs: tags: ${{ steps.tagprep_ctrl.outputs.DOCKER_TAGS }} build-args: | ZITI_VERSION=${{ env.ZITI_VERSION }} + ZITI_CLI_IMAGE=${{ env.ZITI_CLI_IMAGE }} push: true - name: Set Up Container Image Tags for Router Container env: - RELEASE_REPO: openziti/ziti-router + IMAGE_REPO: ${{ env.ZITI_ROUTER_IMAGE }} id: tagprep_router run: | DOCKER_TAGS="" - DOCKER_TAGS="${RELEASE_REPO}:${ZITI_VERSION},${RELEASE_REPO}:latest" + DOCKER_TAGS="${IMAGE_REPO}:${ZITI_VERSION}" + if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then + DOCKER_TAGS+=",${IMAGE_REPO}:latest" + fi echo "DEBUG: DOCKER_TAGS=${DOCKER_TAGS}" echo DOCKER_TAGS="${DOCKER_TAGS}" >> $GITHUB_OUTPUT @@ -106,17 +120,21 @@ jobs: tags: ${{ steps.tagprep_router.outputs.DOCKER_TAGS }} build-args: | ZITI_VERSION=${{ env.ZITI_VERSION }} + ZITI_CLI_IMAGE=${{ env.ZITI_CLI_IMAGE }} push: true - name: Set Up Container Image Tags for Go Tunneler Container env: - SNAPSHOT_REPO: netfoundry/ziti-tunnel - RELEASE_REPO: openziti/ziti-tunnel + IMAGE_REPO: ${{ env.ZITI_TUNNEL_IMAGE }} + LEGACY_REPO: netfoundry/ziti-tunnel id: tagprep_tun run: | DOCKER_TAGS="" - for REPO in ${SNAPSHOT_REPO} ${RELEASE_REPO}; do - DOCKER_TAGS+=",${REPO}:${ZITI_VERSION},${REPO}:latest" + for REPO in ${LEGACY_REPO} ${IMAGE_REPO}; do + DOCKER_TAGS="${IMAGE_REPO}:${ZITI_VERSION}" + if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then + DOCKER_TAGS+=",${IMAGE_REPO}:latest" + fi done DOCKER_TAGS=${DOCKER_TAGS#,} # drop leading comma char echo "DEBUG: DOCKER_TAGS=${DOCKER_TAGS}" @@ -131,4 +149,5 @@ jobs: tags: ${{ steps.tagprep_tun.outputs.DOCKER_TAGS }} build-args: | ZITI_VERSION=${{ env.ZITI_VERSION }} + ZITI_CLI_IMAGE=${{ env.ZITI_CLI_IMAGE }} push: true diff --git a/.github/workflows/push-quickstart.yml b/.github/workflows/push-quickstart.yml index a17d8bcb4..611a8066b 100644 --- a/.github/workflows/push-quickstart.yml +++ b/.github/workflows/push-quickstart.yml @@ -10,7 +10,7 @@ jobs: - name: Login to Docker Hub uses: docker/login-action@v1 with: - username: ${{ secrets.DOCKER_HUB_API_USER }} + username: ${{ vars.DOCKER_HUB_API_USER }} password: ${{ secrets.DOCKER_HUB_API_TOKEN }} - name: Push to Docker run: ./quickstart/docker/pushLatestDocker.sh diff --git a/docker-images/ziti-cli/Dockerfile b/docker-images/ziti-cli/Dockerfile index 1e0967260..2b18eefd5 100644 --- a/docker-images/ziti-cli/Dockerfile +++ b/docker-images/ziti-cli/Dockerfile @@ -40,7 +40,7 @@ RUN INSTALL_PKGS="python38 python38-pip tar" && \ COPY --from=bitnami-kubectl /opt/bitnami/kubectl/bin/kubectl /usr/local/bin/ ### add license in the path prescribed by OpenShift -RUN mkdir -m0755 /licenses +RUN mkdir -p -m0755 /licenses COPY ./LICENSE /licenses/apache.txt RUN mkdir -p /usr/local/bin diff --git a/docker-images/ziti-controller/Dockerfile b/docker-images/ziti-controller/Dockerfile index 900b59ab5..791490a0a 100644 --- a/docker-images/ziti-controller/Dockerfile +++ b/docker-images/ziti-controller/Dockerfile @@ -1,6 +1,7 @@ ARG ZITI_VERSION="latest" +ARG ZITI_CLI_IMAGE="docker.io/openziti/ziti-cli" # this builds docker.io/openziti/ziti-controller -FROM docker.io/openziti/ziti-cli:${ZITI_VERSION} +FROM ${ZITI_CLI_IMAGE}:${ZITI_VERSION} # This build stage grabs artifacts that are copied into the final image. # It uses the same base as the final image to maximize docker cache hits. diff --git a/docker-images/ziti-router/Dockerfile b/docker-images/ziti-router/Dockerfile index 5dba0585f..5b7ccfd7d 100644 --- a/docker-images/ziti-router/Dockerfile +++ b/docker-images/ziti-router/Dockerfile @@ -1,6 +1,7 @@ ARG ZITI_VERSION="latest" +ARG ZITI_CLI_IMAGE="docker.io/openziti/ziti-cli" # this builds docker.io/openziti/ziti-router -FROM docker.io/openziti/ziti-cli:${ZITI_VERSION} +FROM ${ZITI_CLI_IMAGE}:${ZITI_VERSION} # This build stage grabs artifacts that are copied into the final image. # It uses the same base as the final image to maximize docker cache hits. diff --git a/docker-images/ziti-tunnel/Dockerfile b/docker-images/ziti-tunnel/Dockerfile index f041bf102..a8139dee4 100644 --- a/docker-images/ziti-tunnel/Dockerfile +++ b/docker-images/ziti-tunnel/Dockerfile @@ -1,6 +1,8 @@ ARG ZITI_VERSION="latest" +ARG ZITI_CLI_IMAGE="docker.io/openziti/ziti-cli" # this builds docker.io/openziti/ziti-tunnel, the legacy tunneler. The preferred tunneler is openziti/ziti-edge-tunnel documented in https://docs.openziti.io/docs/reference/tunnelers/linux/container/ -FROM docker.io/openziti/ziti-cli:${ZITI_VERSION} +# this builds docker.io/openziti/ziti-router +FROM ${ZITI_CLI_IMAGE}:${ZITI_VERSION} # This build stage grabs artifacts that are copied into the final image. # It uses the same base as the final image to maximize docker cache hits. From 7f7bd76207fe71122b25fcc33f69d5d3632c7156 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 6 Apr 2023 10:06:06 -0400 Subject: [PATCH 07/51] fixes #1077, shows auth policy name on identity list --- ziti/cmd/edge/list.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ziti/cmd/edge/list.go b/ziti/cmd/edge/list.go index 623f2da7c..f5a7a28b8 100644 --- a/ziti/cmd/edge/list.go +++ b/ziti/cmd/edge/list.go @@ -983,12 +983,18 @@ func outputIdentities(o *api.Options, children []*gabs.Container, pagingInfo *ap for _, entity := range children { wrapper := api.Wrap(entity) + authPolicy := wrapper.String("authPolicy.name") + + if authPolicy == "" { + authPolicy = wrapper.String("authPolicyId") + } + t.AppendRow(table.Row{ wrapper.String("id"), wrapper.String("name"), wrapper.String("type.name"), strings.Join(wrapper.StringSlice("roleAttributes"), ","), - wrapper.String("authPolicyId")}) + authPolicy}) } api.RenderTable(o, t, pagingInfo) From 22d3885e59a387e70b25c007908d0424fcabc6a8 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Fri, 14 Apr 2023 08:10:01 -0400 Subject: [PATCH 08/51] update helper scripts and remove old -c --- quickstart/docker/image/ziti-cli-functions.sh | 6 +++--- quickstart/local/add-zcat.sh | 2 +- quickstart/local/newid.sh | 2 +- quickstart/local/test-ziti.sh | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/quickstart/docker/image/ziti-cli-functions.sh b/quickstart/docker/image/ziti-cli-functions.sh index 1520ba7bd..c2c2c4864 100755 --- a/quickstart/docker/image/ziti-cli-functions.sh +++ b/quickstart/docker/image/ziti-cli-functions.sh @@ -45,7 +45,7 @@ function BLUE { } function zitiLogin { - "${ZITI_BIN_DIR-}/ziti" edge login "${ZITI_EDGE_CTRL_ADVERTISED}" -u "${ZITI_USER-}" -p "${ZITI_PWD}" -c "${ZITI_PKI_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_ROOTCA_NAME}/certs/${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}.cert" + "${ZITI_BIN_DIR-}/ziti" edge login "${ZITI_EDGE_CTRL_ADVERTISED}" -u "${ZITI_USER-}" -p "${ZITI_PWD}" -y" } function cleanZitiController { checkEnvVariable ZITI_HOME @@ -1146,8 +1146,8 @@ function ziti_createEnvFile { echo "export PFXLOG_NO_JSON=true" >> "${ENV_FILE}" echo "alias zec='ziti edge'" >> "${ENV_FILE}" - echo "alias zlogin='ziti edge login \"\${ZITI_EDGE_CTRL_ADVERTISED}\" -u \"\${ZITI_USER-}\" -p \"\${ZITI_PWD}\" -c \"\${ZITI_PKI}/\${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}/certs/\${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}.cert\"'" >> "${ENV_FILE}" - echo "alias zitiLogin='ziti edge login \"\${ZITI_EDGE_CTRL_ADVERTISED}\" -u \"\${ZITI_USER-}\" -p \"\${ZITI_PWD}\" -c \"\${ZITI_PKI}/\${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}/certs/\${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}.cert\"'" >> "${ENV_FILE}" + echo "alias zlogin='ziti edge login \"\${ZITI_EDGE_CTRL_ADVERTISED}\" -u \"\${ZITI_USER-}\" -p \"\${ZITI_PWD}\"' -y" >> "${ENV_FILE}" + echo "alias zitiLogin='ziti edge login \"\${ZITI_EDGE_CTRL_ADVERTISED}\" -u \"\${ZITI_USER-}\" -p \"\${ZITI_PWD}\"' -y" >> "${ENV_FILE}" echo "alias psz='ps -ef | grep ziti'" >> "${ENV_FILE}" #when sourcing the emitted file add the bin folder to the path diff --git a/quickstart/local/add-zcat.sh b/quickstart/local/add-zcat.sh index 22cf2ecd7..0a159558a 100644 --- a/quickstart/local/add-zcat.sh +++ b/quickstart/local/add-zcat.sh @@ -1,4 +1,4 @@ -ziti edge login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -c "${ZITI_PKI}/${ZITI_EDGE_CONTROLLER_ROOTCA_NAME}/certs/${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}.cert" +ziti edge login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -y ziti edge delete service zcatsvc ziti edge delete config zcatconfig diff --git a/quickstart/local/newid.sh b/quickstart/local/newid.sh index 54f063ab1..52f318a9d 100755 --- a/quickstart/local/newid.sh +++ b/quickstart/local/newid.sh @@ -1,7 +1,7 @@ suffix=$(date +"%b-%d-%H%M") idname="User${suffix}" -ziti edge login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -c "${ZITI_PKI}/${ZITI_EDGE_CONTROLLER_ROOTCA_NAME}/certs/${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}.cert" +ziti edge login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -y ziti edge delete identity "${idname}" ziti edge create identity device "${idname}" -o "${ZITI_HOME}/test_identity".jwt diff --git a/quickstart/local/test-ziti.sh b/quickstart/local/test-ziti.sh index cb8ac4f9a..44f6b7935 100755 --- a/quickstart/local/test-ziti.sh +++ b/quickstart/local/test-ziti.sh @@ -1,4 +1,4 @@ -ziti edge controller login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -c "${ZITI_PKI}/${ZITI_EDGE_CONTROLLER_ROOTCA_NAME}/certs/${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}.cert" +ziti edge controller login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -y ziti edge delete service netcatsvc ziti edge delete service zcatsvc From 614eafe6be255ed908e05de2c4d473b2e049a623 Mon Sep 17 00:00:00 2001 From: Cam Otts Date: Sat, 15 Apr 2023 11:18:05 -0500 Subject: [PATCH 09/51] added amqp logger (#1084) --- CHANGELOG.md | 6 ++++++ etc/ctrl.with.edge.yml | 13 +++++++++++++ go.mod | 3 ++- go.sum | 8 ++++++-- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6be2fda5d..a5377f7d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# Release 0.27.10 + +## What's New + +* Added AMQP event writter for events + # Release 0.27.9 ## What's New diff --git a/etc/ctrl.with.edge.yml b/etc/ctrl.with.edge.yml index db3c6d02f..221785737 100644 --- a/etc/ctrl.with.edge.yml +++ b/etc/ctrl.with.edge.yml @@ -67,6 +67,19 @@ ctrl: # type: file # format: json # path: /tmp/ziti-events.log +# usageLogger: +# subscriptions: +# - type: fabric.usage +# interval: 5s +# handler: +# type: amqp +# format: json +# url: "amqp://localhost:5672" +# queue: ziti +# durable: true //default:true +# autoDelete: false //default:false +# exclusive: false //default:false +# noWait: false //default:false # xctrl_example # diff --git a/go.mod b/go.mod index 3a7d9d9e0..075f63d77 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/openziti/channel/v2 v2.0.58 github.com/openziti/edge v0.24.239 github.com/openziti/edge-api v0.25.11 - github.com/openziti/fabric v0.22.87 + github.com/openziti/fabric v0.22.89 github.com/openziti/foundation/v2 v2.0.21 github.com/openziti/identity v1.0.45 github.com/openziti/runzmd v1.0.20 @@ -151,6 +151,7 @@ require ( github.com/pkg/term v1.2.0-beta.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect + github.com/rabbitmq/amqp091-go v1.8.0 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/rodaine/table v1.0.1 // indirect github.com/shoenig/go-m1cpu v0.1.5 // indirect diff --git a/go.sum b/go.sum index 491946f31..f4ce2e662 100644 --- a/go.sum +++ b/go.sum @@ -707,8 +707,8 @@ github.com/openziti/edge v0.24.239 h1:S7bAy/BfpGpKwXnfWuGgWpfjUEuJ5iwZojTxu9W8DO github.com/openziti/edge v0.24.239/go.mod h1:G6PLbcyib36KH9hN6tMacr2UMin15EmZioSGPPptJ0U= github.com/openziti/edge-api v0.25.11 h1:HHjDgoybPZGRZ+tM2udehI+U5Xv991iGED8E6CtDb9w= github.com/openziti/edge-api v0.25.11/go.mod h1:PBFMYELgr7JUuaCqHobq1U+WESsutzgEDoELU/9qFOg= -github.com/openziti/fabric v0.22.87 h1:Vc71NOFGLQapr8YZjx4p+f9+HHKm63o4kpt4LMjXTY4= -github.com/openziti/fabric v0.22.87/go.mod h1:w/cleYmpE/coUjjCzoRbpO648QWwSee0V4H8mfyqCdg= +github.com/openziti/fabric v0.22.89 h1:6s4zrvKfSqwsCF74KxV3LEh7/qKFPJEaYNcjLauXANo= +github.com/openziti/fabric v0.22.89/go.mod h1:LI8A9Sf012ICzFQERh9zHzvKMdjcMcW2sPFCzKTsW9E= github.com/openziti/foundation/v2 v2.0.21 h1:3EDDmSunsbd2DlULuY/vqj12LHRZOknH/m3lf6Ws5Nw= github.com/openziti/foundation/v2 v2.0.21/go.mod h1:02GW3jFSSlfLwYwuTIldP/S4w7eCKqlzL6ajFSGHNPA= github.com/openziti/identity v1.0.45 h1:e2kXoMCPcaUXy+k6GwasuKeGSJwavFEr+eOvUA228UY= @@ -793,6 +793,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rabbitmq/amqp091-go v1.8.0 h1:GBFy5PpLQ5jSVVSYv8ecHGqeX7UTLYR4ItQbDCss9MM= +github.com/rabbitmq/amqp091-go v1.8.0/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc= github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -986,6 +988,8 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= From e30d52b131e9fe059fd0d10ebe9069c97f1becd3 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Sat, 15 Apr 2023 13:23:06 -0400 Subject: [PATCH 10/51] install bash-completion --- docker-images/ziti-cli/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-images/ziti-cli/Dockerfile b/docker-images/ziti-cli/Dockerfile index 2b18eefd5..d33bb7ca5 100644 --- a/docker-images/ziti-cli/Dockerfile +++ b/docker-images/ziti-cli/Dockerfile @@ -28,7 +28,7 @@ LABEL name="openziti/ziti-cli" \ USER root ### install packages -RUN INSTALL_PKGS="python38 python38-pip tar" && \ +RUN INSTALL_PKGS="python38 python38-pip tar bash-completion" && \ microdnf -y update --setopt=install_weak_deps=0 --setopt=tsflags=nodocs && \ microdnf -y install --setopt=install_weak_deps=0 --setopt=tsflags=nodocs ${INSTALL_PKGS} From 6f935e845922f52680a5c7b4277dbeecd411da5e Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sat, 15 Apr 2023 17:38:24 -0400 Subject: [PATCH 11/51] add tar to required command list --- quickstart/docker/image/ziti-cli-functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstart/docker/image/ziti-cli-functions.sh b/quickstart/docker/image/ziti-cli-functions.sh index 1520ba7bd..4f6a54c81 100755 --- a/quickstart/docker/image/ziti-cli-functions.sh +++ b/quickstart/docker/image/ziti-cli-functions.sh @@ -276,7 +276,7 @@ function getZiti { } function checkPrereqs { - commands_to_test=(curl jq) + commands_to_test=(curl jq tar) missing_requirements="" # verify all the commands required in the automation exist before trying to run the full suite for cmd in "${commands_to_test[@]}" From adddf168ade846b1bf1e0c9c8eefd089b40fcac6 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sat, 15 Apr 2023 17:56:32 -0400 Subject: [PATCH 12/51] add hostname too --- quickstart/docker/image/ziti-cli-functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstart/docker/image/ziti-cli-functions.sh b/quickstart/docker/image/ziti-cli-functions.sh index 4f6a54c81..09a1a4178 100755 --- a/quickstart/docker/image/ziti-cli-functions.sh +++ b/quickstart/docker/image/ziti-cli-functions.sh @@ -276,7 +276,7 @@ function getZiti { } function checkPrereqs { - commands_to_test=(curl jq tar) + commands_to_test=(curl jq tar hostname) missing_requirements="" # verify all the commands required in the automation exist before trying to run the full suite for cmd in "${commands_to_test[@]}" From b96829920dfc7f45f4bb33bce678832820d092e3 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sat, 15 Apr 2023 17:58:39 -0400 Subject: [PATCH 13/51] see if this will add a newline like i expected to see --- quickstart/docker/image/ziti-cli-functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstart/docker/image/ziti-cli-functions.sh b/quickstart/docker/image/ziti-cli-functions.sh index 09a1a4178..091b194f8 100755 --- a/quickstart/docker/image/ziti-cli-functions.sh +++ b/quickstart/docker/image/ziti-cli-functions.sh @@ -283,7 +283,7 @@ function checkPrereqs { do # checking all commands are on the path before continuing... if ! [[ -x "$(command -v "${cmd}")" ]]; then - missing_requirements="${missing_requirements} * ${cmd}" + missing_requirements="${missing_requirements} * ${cmd}\n" fi done # are requirements ? if yes, stop here and help 'em out From 018a9b30579e5455e034bb76f0f1975190b7691e Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sat, 15 Apr 2023 18:21:10 -0400 Subject: [PATCH 14/51] trying literal newline --- quickstart/docker/image/ziti-cli-functions.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/quickstart/docker/image/ziti-cli-functions.sh b/quickstart/docker/image/ziti-cli-functions.sh index 091b194f8..9a55daacc 100755 --- a/quickstart/docker/image/ziti-cli-functions.sh +++ b/quickstart/docker/image/ziti-cli-functions.sh @@ -283,7 +283,8 @@ function checkPrereqs { do # checking all commands are on the path before continuing... if ! [[ -x "$(command -v "${cmd}")" ]]; then - missing_requirements="${missing_requirements} * ${cmd}\n" + missing_requirements="${missing_requirements} * ${cmd} +" fi done # are requirements ? if yes, stop here and help 'em out From 5e2c044adf267e5f9c828979e7eae037ba2503cb Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Mon, 17 Apr 2023 08:05:45 -0400 Subject: [PATCH 15/51] rearrange where checkPrereqs is defined and call it when sourcing to make sure all the functions are found --- quickstart/docker/image/ziti-cli-functions.sh | 66 +++++++++---------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/quickstart/docker/image/ziti-cli-functions.sh b/quickstart/docker/image/ziti-cli-functions.sh index 9a55daacc..7b1d1b89c 100755 --- a/quickstart/docker/image/ziti-cli-functions.sh +++ b/quickstart/docker/image/ziti-cli-functions.sh @@ -2,14 +2,6 @@ set -uo pipefail -# the default ZITI_NETWORK (network name) is the short hostname -: "${DEFAULT_ZITI_NETWORK:="$(hostname -s)"}" - -# shellcheck disable=SC2155 -export DEFAULT_ZITI_HOME_LOCATION="${HOME}/.ziti/quickstart/${DEFAULT_ZITI_NETWORK}" - -export ZITI_QUICKSTART_ENVROOT="${HOME}/.ziti/quickstart" - ASCI_WHITE='\033[01;37m' ASCI_RESTORE='\033[0m' ASCI_RED='\033[00;31m' @@ -44,6 +36,38 @@ function BLUE { echo "${ASCI_BLUE}${1-}${ASCI_RESTORE}" } +function checkPrereqs { + commands_to_test=(curl jq tar hostname) + missing_requirements="" + # verify all the commands required in the automation exist before trying to run the full suite + for cmd in "${commands_to_test[@]}" + do + # checking all commands are on the path before continuing... + if ! [[ -x "$(command -v "${cmd}")" ]]; then + missing_requirements="${missing_requirements} * ${cmd} +" + fi + done + # are requirements ? if yes, stop here and help 'em out + if ! [[ "" = "${missing_requirements}" ]]; then + echo " " + echo "You're missing one or more commands that are used in this script." + echo "Please ensure the commands listed are on the path and then try again." + echo "${missing_requirements}" + echo " " + return 1 + fi +} + +checkPrereqs + +# the default ZITI_NETWORK (network name) is the short hostname +: "${DEFAULT_ZITI_NETWORK:="$(hostname -s)"}" + +# shellcheck disable=SC2155 +export DEFAULT_ZITI_HOME_LOCATION="${HOME}/.ziti/quickstart/${DEFAULT_ZITI_NETWORK}" +export ZITI_QUICKSTART_ENVROOT="${HOME}/.ziti/quickstart" + function zitiLogin { "${ZITI_BIN_DIR-}/ziti" edge login "${ZITI_EDGE_CTRL_ADVERTISED}" -u "${ZITI_USER-}" -p "${ZITI_PWD}" -c "${ZITI_PKI_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_ROOTCA_NAME}/certs/${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}.cert" } @@ -275,32 +299,6 @@ function getZiti { fi } -function checkPrereqs { - commands_to_test=(curl jq tar hostname) - missing_requirements="" - # verify all the commands required in the automation exist before trying to run the full suite - for cmd in "${commands_to_test[@]}" - do - # checking all commands are on the path before continuing... - if ! [[ -x "$(command -v "${cmd}")" ]]; then - missing_requirements="${missing_requirements} * ${cmd} -" - fi - done - # are requirements ? if yes, stop here and help 'em out - if ! [[ "" = "${missing_requirements}" ]]; then - echo " " - echo "You're missing one or more commands that are used in this script." - echo "Please ensure the commands listed are on the path and then try again." - echo "${missing_requirements}" - echo " " - echo " " - return 1 - else - echo -e "$(GREEN "Prerequisites confirmed")" - fi -} - function _portCheck { if [[ "${1-}" == "" ]] || [[ "${2-}" == "" ]]; then echo -e "_portCheck Usage: _portCheck " From 3ce4a373b24114426f0c0dac06ae41e877e0217c Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Tue, 18 Apr 2023 10:08:26 -0400 Subject: [PATCH 16/51] resolve changelog conflict --- CHANGELOG.md | 3671 +------------------------------------------------- 1 file changed, 24 insertions(+), 3647 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1e882742..e485ffb16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ -# Release 0.27.9 +# Release 0.27.10 ## What's New +* Added AMQP event writter for events * CLI additions for `ziti` to login with certificates or external-jwt-signers * NOTE: ziti edge login flag changes: * `-c` flag has been changed to map to `--client-cert` @@ -10,9 +11,28 @@ * `-c/--client-cert` allows a certificate to be supplied to login (used with `-k/--client-key`) * `-k/--client-key` allows a key to be supplied to login (used with `-c/--client-cert`) +# Release 0.27.9 + +## What's New + +* Refactored the websocket transport to fix a concurrency issue +* v0.27.6 changed delete behaviors to error if the entity was not found. This release reverts that behavior. + ## Component Updates and Bug Fixes -* none yet +* github.com/openziti/channel/v2: [v2.0.53 -> v2.0.58](https://github.com/openziti/channel/compare/v2.0.53...v2.0.58) +* github.com/openziti/edge: [v0.24.228 -> v0.24.239](https://github.com/openziti/edge/compare/v0.24.228...v0.24.239) + * [Issue #1391](https://github.com/openziti/edge/issues/1391) - AuthPolicies for identities is missing a reference link + +* github.com/openziti/edge-api: [v0.25.9 -> v0.25.11](https://github.com/openziti/edge-api/compare/v0.25.9...v0.25.11) +* github.com/openziti/fabric: [v0.22.77 -> v0.22.87](https://github.com/openziti/fabric/compare/v0.22.77...v0.22.87) +* github.com/openziti/foundation/v2: [v2.0.18 -> v2.0.21](https://github.com/openziti/foundation/compare/v2.0.18...v2.0.21) +* github.com/openziti/identity: [v1.0.42 -> v1.0.45](https://github.com/openziti/identity/compare/v1.0.42...v1.0.45) +* github.com/openziti/runzmd: [v1.0.18 -> v1.0.20](https://github.com/openziti/runzmd/compare/v1.0.18...v1.0.20) +* github.com/openziti/storage: [v0.1.46 -> v0.1.49](https://github.com/openziti/storage/compare/v0.1.46...v0.1.49) +* github.com/openziti/transport/v2: [v2.0.68 -> v2.0.72](https://github.com/openziti/transport/compare/v2.0.68...v2.0.72) +* github.com/openziti/metrics: [v1.2.16 -> v1.2.19](https://github.com/openziti/metrics/compare/v1.2.16...v1.2.19) +* github.com/openziti/ziti: [v0.27.8 -> v0.27.9](https://github.com/openziti/ziti/compare/v0.27.8...v0.27.9) # Release 0.27.8 @@ -296,3649 +316,6 @@ This release contains a fix for a controller deadlock * [Issue #897](https://github.com/openziti/ziti/issues/897) - Add CLI options to manage /edge/v1/transit-routers * [Issue #706](https://github.com/openziti/ziti/issues/706) - Add port check to quickstart -# Release 0.26.11 - -## What's New - -This is mainly a bugfix release. - -- Ziti CLI - - Bug Fixes (See Component Updates and Bug Fixes below) - - Added CLI flags for setting router tunneler capability - -## Ziti CLI - -### Added CLI flags for setting router tunneler capability -Ziti CLI `ziti create config router edge` now has two new flags; `--tunnelerMode` and `--lanInterface` -#### --tunnelerMode -The `--tunnelerMode` flag enables tunneling and sets the tunneler mode. Currently, there are `none`, `host` and `tproxy` -modes. The default tunneler mode is `host` mode, choosing `none` will disable tunnel capabilities for the router. - -Examples: -```shell -ziti create config router edge --routerName myRouter --tunnelerMode tproxy - -ziti create config router edge --routerName myRouter --tunnelerMode none -``` -#### --lanInterface -If using the `tproxy` tunneler mode, there is an optional `lanIf` section in the config to identify an interface to use. - -Example: -```shell -ziti create config router edge --routerName myRouter --tunnelerMode tproxy --lanInterface tun0 -``` - -## Component Updates and Bug Fixes - -* github.com/openziti/agent: [v1.0.4 -> v1.0.5](https://github.com/openziti/agent/compare/v1.0.4...v1.0.5) -* github.com/openziti/channel/v2: [v2.0.9 -> v2.0.12](https://github.com/openziti/channel/compare/v2.0.9...v2.0.12) -* github.com/openziti/edge: [v0.24.12 -> v0.24.36](https://github.com/openziti/edge/compare/v0.24.12...v0.24.36) - * [Issue #1217](https://github.com/openziti/edge/issues/1217) - Ziti Edge lists the edge router to be offline after recovering from an internet fluctuation - -* github.com/openziti/fabric: [v0.21.9 -> v0.21.17](https://github.com/openziti/fabric/compare/v0.21.9...v0.21.17) -* github.com/openziti/foundation/v2: [v2.0.6 -> v2.0.7](https://github.com/openziti/foundation/compare/v2.0.6...v2.0.7) -* github.com/openziti/identity: [v1.0.18 -> v1.0.20](https://github.com/openziti/identity/compare/v1.0.18...v1.0.20) -* github.com/openziti/runzmd: v1.0.3 (new) -* github.com/openziti/sdk-golang: [v0.16.135 -> v0.16.146](https://github.com/openziti/sdk-golang/compare/v0.16.135...v0.16.146) - * [Issue #328](https://github.com/openziti/sdk-golang/issues/328) - enrollment has no 'verbose' option for debugging - * [Issue #314](https://github.com/openziti/sdk-golang/issues/314) - Incorrect documentation for grpc-example - * [Issue #317](https://github.com/openziti/sdk-golang/issues/317) - No documenation for call example - * [Issue #311](https://github.com/openziti/sdk-golang/issues/311) - Chat Client and Server needs documentation - -* github.com/openziti/storage: [v0.1.25 -> v0.1.26](https://github.com/openziti/storage/compare/v0.1.25...v0.1.26) -* github.com/openziti/transport/v2: [v2.0.36 -> v2.0.38](https://github.com/openziti/transport/compare/v2.0.36...v2.0.38) -* github.com/openziti/metrics: [v1.1.4 -> v1.1.5](https://github.com/openziti/metrics/compare/v1.1.4...v1.1.5) -* github.com/openziti/ziti: [v0.26.10 -> v0.26.11](https://github.com/openziti/ziti/compare/v0.26.10...v0.26.11) - * [Issue 868](https://github.com/openziti/ziti/issues/868): `ZITI_EDGE_ROUTER_IP_OVERRIDE` does not override the edge router advertise hostname - * [Issue 882](https://github.com/openziti/ziti/issues/882): `ZITI_EDGE_ROUTER_RAWNAME` not stored in quickstart .env file - -# Release 0.26.10 - -## What's New -This release has a single fix for a panic in edge routers with embedded tunnelers hosting services. -The only other changes are build updates. - -## Ziti Component Updates and Bug Fixes -* github.com/openziti/agent: [v1.0.3 -> v1.0.4](https://github.com/openziti/agent/compare/v1.0.3...v1.0.4) -* github.com/openziti/channel/v2: [v2.0.5 -> v2.0.9](https://github.com/openziti/channel/compare/v2.0.5...v2.0.9) -* github.com/openziti/edge: [v0.24.7 -> v0.24.12](https://github.com/openziti/edge/compare/v0.24.7...v0.24.12) - * [Issue #1209](https://github.com/openziti/edge/issues/1209) - edge router with embedded tunneler panics when intercepting services - -* github.com/openziti/fabric: [v0.21.3 -> v0.21.9](https://github.com/openziti/fabric/compare/v0.21.3...v0.21.9) -* github.com/openziti/foundation/v2: [v2.0.5 -> v2.0.6](https://github.com/openziti/foundation/compare/v2.0.5...v2.0.6) -* github.com/openziti/identity: [v1.0.16 -> v1.0.18](https://github.com/openziti/identity/compare/v1.0.16...v1.0.18) -* github.com/openziti/sdk-golang: [v0.16.129 -> v0.16.135](https://github.com/openziti/sdk-golang/compare/v0.16.129...v0.16.135) -* github.com/openziti/storage: [v0.1.23 -> v0.1.25](https://github.com/openziti/storage/compare/v0.1.23...v0.1.25) -* github.com/openziti/transport/v2: [v2.0.33 -> v2.0.36](https://github.com/openziti/transport/compare/v2.0.33...v2.0.36) -* github.com/openziti/metrics: [v1.1.2 -> v1.1.4](https://github.com/openziti/metrics/compare/v1.1.2...v1.1.4) -* github.com/openziti/ziti: [v0.26.9 -> v0.26.10](https://github.com/openziti/ziti/compare/v0.26.9...v0.26.10) - -# Release 0.26.9 - -## What's New - -- Edge - - Bug Fixes -- Fabric - - Bug Fixes -- Ziti CLI - - Allow dynamic modification of enrollment durations - - Bug Fixes -- SDK Golang - - Bug Fixes -- Identity - -## Ziti CLI -### Allow dynamic modification of enrollment durations -#### Identity Enrollment Duration -Setting the environment variable `ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION` to some value **in minutes** will override the default identity enrollment duration configuration -when creating new controller configurations. If left unset, the default value is used. Using this method applies to controller config generation through the CLI as -well as quickstart deployments. - -Example: -```shell -# Set identity enrollment to 60 minutes, controller configs created afterward will use this value -export ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION=60 -``` - -An additional argument `--identityEnrollmentDuration` has been added to the CLI controller config generation. If the argument is provided, the value of the argument will take -precedence, followed by the value of the environment variable (noted above), and if neither are used, the default value is used. Note that the argument takes a time unit -(m for minutes, h for hour, etc.) - -Example: -```shell -# Create a controller config with an identity enrollment duration of 60 minutes -ziti create config controller --identityEnrollmentDuration 60m -# OR -ziti create config controller --identityEnrollmentDuration 1h -``` -#### Router Enrollment Duration -Setting the environment variable `ZITI_EDGE_ROUTER_ENROLLMENT_DURATION` to some value **in minutes** will override the default router enrollment duration configuration -when creating new controller configurations. If left unset, the default value is used. Using this method applies to controller config generation through the CLI as -well as quickstart deployments. - -Example: -```shell -# Set router enrollment to 60 minutes, controller configs created afterward will use this value -export ZITI_EDGE_ROUTER_ENROLLMENT_DURATION=60 -``` - -An additional argument `--routerEnrollmentDuration` has been added to the CLI controller config generation. If the argument is provided, the value of the argument will take -precedence, followed by the value of the environment variable (noted above), and if neither are used, the default value is used. Note that the argument takes a time unit -(m for minutes, h for hour, etc.) - -Example: -```shell -# Create a controller config with a router enrollment duration of 60 minutes -ziti create config controller --routerEnrollmentDuration 60m -# OR -ziti create config controller --routerEnrollmentDuration 1h -``` - -### Ziti Component Updates and Bug Fixes - -* github.com/openziti/channel/v2: [v1.0.3 -> v2.0.4](https://github.com/openziti/channel/compare/v1.0.3...v2.0.4) -* github.com/openziti/edge: [v0.23.0 -> v0.24.3](https://github.com/openziti/edge/compare/v0.23.0...v0.24.3) - * [Issue #1189](https://github.com/openziti/edge/issues/1189) - router embedded tunneler can create redundant api session if initial requests come in a flood - * [Issue #1186](https://github.com/openziti/edge/issues/1186) - Panic when creating sdk hosted terminator - -* github.com/openziti/fabric: [v0.20.0 -> v0.21.2](https://github.com/openziti/fabric/compare/v0.20.0...v0.21.2) - * [Issue #469](https://github.com/openziti/fabric/issues/469) - Initial support for multiple control channels in routers - -* github.com/openziti/foundation/v2: [v2.0.4 -> v2.0.5](https://github.com/openziti/foundation/compare/v2.0.4...v2.0.5) -* github.com/openziti/identity: [v1.0.12 -> v1.0.16](https://github.com/openziti/identity/compare/v1.0.12...v1.0.16) -* github.com/openziti/sdk-golang: [v0.16.121 -> v0.16.128](https://github.com/openziti/sdk-golang/compare/v0.16.121...v0.16.128) -* github.com/openziti/storage: [v0.1.21 -> v0.1.23](https://github.com/openziti/storage/compare/v0.1.21...v0.1.23) - * [Issue #23](https://github.com/openziti/storage/issues/23) - fix panic: IterateLink on ref counted link collection should never return a nil cursor - -* github.com/openziti/transport/v2: [v2.0.29 -> v2.0.33](https://github.com/openziti/transport/compare/v2.0.29...v2.0.33) -* github.com/openziti/jwks: [v1.0.1 -> v1.0.2](https://github.com/openziti/jwks/compare/v1.0.1...v1.0.2) -* github.com/openziti/metrics: [v1.1.0 -> v1.1.2](https://github.com/openziti/metrics/compare/v1.1.0...v1.1.2) -* github.com/openziti/x509-claims: [v1.0.2 -> v1.0.3](https://github.com/openziti/x509-claims/compare/v1.0.2...v1.0.3) -* github.com/openziti/ziti: [0.26.8 -> 0.26.9](https://github.com/openziti/ziti/compare/0.26.8...0.26.9) - * [Issue #845](https://github.com/openziti/ziti/issues/845) - Setting ZITI_EDGE_ROUTER_IP_OVERRIDE now adds the IP to the CSR SANs of the router config - -# Release 0.26.8 - -## What's New - -- General - - Allow filtering model entities by tag -- Fabric - - Usage v3 metrics -- Edge - - Bug Fixes -- Ziti CLI - - `ziti edge create|update ca` now supports `externalIdClaim` - - Improved List CAs -- Identity - - Automatic File Reloads - -## General -Model entities can now be filtered by tags. This works via the fabric and edge REST APIs and can be -used from the `ziti` CLI. - -Example: - -``` -$ ziti edge update service demo --tags location=PA -$ ziti edge update service echo --tags location=NY -$ ziti edge ls services 'limit 4' -╭────────────────────────┬──────────────┬────────────┬─────────────────────┬────────────╮ -│ ID │ NAME │ ENCRYPTION │ TERMINATOR STRATEGY │ ATTRIBUTES │ -│ │ │ REQUIRED │ │ │ -├────────────────────────┼──────────────┼────────────┼─────────────────────┼────────────┤ -│ 1WztJ.YuMY │ demo │ true │ smartrouting │ │ -│ 68kYZOS54kAbU4hEhKHgHT │ echo │ true │ smartrouting │ echo │ -│ EjaiJkYuMY │ project.mgmt │ true │ smartrouting │ │ -│ F0JVJkY40Y │ mattermost │ true │ smartrouting │ │ -╰────────────────────────┴──────────────┴────────────┴─────────────────────┴────────────╯ -results: 1-4 of 13 - -$ ziti edge ls services 'tags.location != null' -╭────────────────────────┬──────┬────────────┬─────────────────────┬────────────╮ -│ ID │ NAME │ ENCRYPTION │ TERMINATOR STRATEGY │ ATTRIBUTES │ -│ │ │ REQUIRED │ │ │ -├────────────────────────┼──────┼────────────┼─────────────────────┼────────────┤ -│ 1WztJ.YuMY │ demo │ true │ smartrouting │ │ -│ 68kYZOS54kAbU4hEhKHgHT │ echo │ true │ smartrouting │ echo │ -╰────────────────────────┴──────┴────────────┴─────────────────────┴────────────╯ -results: 1-2 of 2 - -$ ziti edge ls services 'tags.location = "NY"' -╭────────────────────────┬──────┬────────────┬─────────────────────┬────────────╮ -│ ID │ NAME │ ENCRYPTION │ TERMINATOR STRATEGY │ ATTRIBUTES │ -│ │ │ REQUIRED │ │ │ -├────────────────────────┼──────┼────────────┼─────────────────────┼────────────┤ -│ 68kYZOS54kAbU4hEhKHgHT │ echo │ true │ smartrouting │ echo │ -╰────────────────────────┴──────┴────────────┴─────────────────────┴────────────╯ -results: 1-1 of 1 -``` - -## Fabric -### Usage v3 - -This a new version of usage events available. The existing v2 version events can still be used. The version -is selected in the events configuration. - -Here is a config showing how to get both sets of events: - -``` -events: - jsonLogger: - subscriptions: - - type: fabric.usage - version: 2 - - type: fabric.usage - versin: 3 -``` -If no version is provided for usage, then v2 events will still be outputted by default. - -### Event Consolidation - -V3 events consolidate multiple usage metrics together to minimize the number of events. - -Example: - -``` -{ - "namespace": "fabric.usage", - "version": 3, - "source_id": "cjc.1kYu0", - "circuit_id": "CwbENl.lW", - "usage": { - "egress.rx": 47, - "egress.tx": 47 - }, - "interval_start_utc": 1663342500, - "interval_length": 60, - "tags": { - "clientId": "XtYOStBYgd", - "hostId": "f3ltEI8Iok", - "serviceId": "fclVFecdgakAoHyBvtIGy" - } -} -``` - -Ingress and egress usage for a given circuit will consolidated into a single event per router. Fabric usage -will also be consolided into a single, separate event. - -### Event tagging - -Usage events for ingress and egress usage will be annotated with edge information for both v2 and v3. - -In the example above the event has tags for `clientId`, `hostId` and `serviceId`. - -* `clientId` - The id of the edge identity using the service -* `hostId` - The id of the edge identity hosting the service (will be blank if not applicable, such as for router hosted) -* `serviceId` - The id of the service being used - -## Edge -### Bug Fixes - -* [Issue 1176](https://github.com/openziti/edge/issues/1176): Patching CA `externalIdClaim` Does Not Work - -## Ziti CLI - -### `ziti edge create|update ca` now support `externalIdClaim - -Identities now have a field named `externalId` that can be used with 3rd Party CAs in addition to the existing -External JWT Signer support. 3rd Party CAs now support the following optional fields: - -- `externalIdClaim.index` - if multiple externalId claims are located, the index will be used to select one, default 0 -- `externalIdClaim.location` - extracts values from one of the following locations on a x509 certificate: `SAN_URI`, `SAN_EMAIL`, `COMMON_NAME` -- `externalIdClaim.matcher` - matches values in one of the following ways `PREFIX`, `SUFFIX`, `SCHEME` in conjunction with `matcherCriteria` or select all values via `ALL` -- `externalIdClaim.matcherCriteria` - `matcher` values of `PREFIX`, `SUFFIX`, and `SCHEME` will use `matcherCriteria` as a matching value -- `externalIdClaim.parser`: - supports parsing values from all matched externalIds via `SPLIT` or `NONE` -- `externalIdClaim.parserCriteria` - for a `parser` value of `SPLIT`, `parserCriteria` will be used to split values - -When defined the `externalIdClaim` configuration will be used to locate any `externalId`s present in the client -supplied x509 certificate. If an `externalId` is located, it will be used to associate the authentication request -with an identity. If found, authentication is considered successful if not the authentication request fails. If the -client certificate does not contain an `externalId` then identities will be searched for that have a certificate -authenticator that matches the supplied client certificate. Should that fail, the authentication request fails. - -This functionality can be used to support SPIFFE provisioned identities. For any specific SPIFFE ID, assign it to an -identity's `externalId` and then use the following `externalIdClaim` configurations. - -#### CA Create/Update REST API -```json -{ - ... - "externalIdClaim": { - "location": "SAN_URI", - "index": 0, - "matcher": "SCHEME", - "matcherCriteria": "spiffe", - "parser": "NONE", - "parserCriteria": "" - } -} -``` -#### Ziti CLI - -``` -ziti edge create ca myCa ca.pem -l SAN_URI -m SCHEME -x spiffe -p "NONE" -``` - -``` -ziti edge update ca myCa -l SAN_URI -m SCHEME -x spiffe -p "NONE" -``` - -### Improved List CAs Output - -The output for listing CAs in non-JSON format has been improved. - -Example: - -```text -╭────────────────────────┬─────────┬────────┬────────────┬─────────────┬─────────────────────────────────────────────────────────────────╮ -│ ID │ NAME │ FLAGS │ TOKEN │ FINGERPRINT │ CONFIGURATION │ -├────────────────────────┼─────────┼────────┼────────────┼─────────────┼─────────────────┬──────────────────────┬────────────────────────┤ -│ 1tu6CbXT18Dd9rybjCW5eX │ 2 │ [AOE] │ KaPxRiKbk │ - │ AutoCA │ Identity Name Format │ [caName]-[commonName] │ -│ │ │ │ │ │ ├──────────────────────┼────────────────────────┤ -│ │ │ │ │ │ │ Identity Roles │ a,b,c │ -│ │ │ │ │ ├─────────────────┼──────────────────────┼────────────────────────┤ -│ │ │ │ │ │ ExternalIdClaim │ Index │ 2 │ -│ │ │ │ │ │ ├──────────────────────┼────────────────────────┤ -│ │ │ │ │ │ │ Location │ SAN_URI │ -│ │ │ │ │ │ ├──────────────────────┼────────────────────────┤ -│ │ │ │ │ │ │ Matcher │ ALL │ -│ │ │ │ │ │ ├──────────────────────┼────────────────────────┤ -│ │ │ │ │ │ │ Matcher Criteria │ │ -│ │ │ │ │ │ ├──────────────────────┼────────────────────────┤ -│ │ │ │ │ │ │ Parser │ NONE │ -│ │ │ │ │ │ ├──────────────────────┼────────────────────────┤ -│ │ │ │ │ │ │ Parser Criteria │ │ -├────────────────────────┼─────────┼────────┼────────────┼─────────────┼─────────────────┼──────────────────────┼────────────────────────┤ -│ 7AGp9vUttJHKA1JWujNtpR │ test-ca │ [VAOE] │ - │ 315e...ba │ AutoCA │ Identity Name Format │ [caName]-[commonName] │ -│ │ │ │ │ │ ├──────────────────────┼────────────────────────┤ -│ │ │ │ │ │ │ Identity Roles │ three, two,one │ -╰────────────────────────┴─────────┴────────┴────────────┴─────────────┴─────────────────┴──────────────────────┴────────────────────────╯ -``` - -## Ziti Library Updates - -* github.com/openziti/channel: [v1.0.2 -> v1.0.3](https://github.com/openziti/channel/compare/v1.0.2...v1.0.3) -* github.com/openziti/edge: [v0.22.91 -> v0.23.0](https://github.com/openziti/edge/compare/v0.22.91...v0.23.0) - * [Issue #1173](https://github.com/openziti/edge/issues/1173) - Add session_type and service_id to edge session events - * [Issue #1176](https://github.com/openziti/edge/issues/1176) - Patching CA ExternalIdClaim Does Not Work - * [Issue #1174](https://github.com/openziti/edge/issues/1174) - Fix patching tags on services and transit routers - * [Issue #1154](https://github.com/openziti/edge/issues/1154) - Additional filters for service list endpoint - -* github.com/openziti/fabric: [v0.19.67 -> v0.20.0](https://github.com/openziti/fabric/compare/v0.19.67...v0.20.0) - * [Issue #496](https://github.com/openziti/fabric/issues/496) - Reduce utiliztion messages by combining directionality - * [Issue #499](https://github.com/openziti/fabric/issues/499) - Fix tag patching tags on service and router - -* github.com/openziti/identity: [v1.0.11 -> v1.0.12](https://github.com/openziti/identity/compare/v1.0.11...v1.0.12) -* github.com/openziti/metrics: [v1.0.7 -> v1.1.0](https://github.com/openziti/metrics/compare/v1.0.7...v1.1.0) - * [Issue #15](https://github.com/openziti/metrics/issues/15) - Support tags and multiple values on usage - -* github.com/openziti/sdk-golang: [v0.16.119 -> v0.16.121](https://github.com/openziti/sdk-golang/compare/v0.16.119...v0.16.121) -* github.com/openziti/storage: [v0.1.20 -> v0.1.21](https://github.com/openziti/storage/compare/v0.1.20...v0.1.21) - * [Issue #21](https://github.com/openziti/storage/issues/21) - Support querying tags by default - -* github.com/openziti/transport/v2: [v2.0.28 -> v2.0.29](https://github.com/openziti/transport/compare/v2.0.28...v2.0.29) -* github.com/openziti/ziti: [0.26.7 -> 0.26.8](https://github.com/openziti/ziti/compare/0.26.7...0.26.8) - * [Issue #835](https://github.com/openziti/ziti/issues/835) - Ensure model entity tags can be updated via CLI where appropriate - -# Release 0.26.7 - -## What's New - -The only change in this release is updating from Golang 1.18 to 1.19 - -# Release 0.26.6 - -## What's New - -- Edge - - N/A -- Fabric - - Don't allow slow or blocked links to impede other links - - Add destination address to circuit events -- Ziti CLI - - Bug Fixes -- SDK Golang - - N/A -- Identity - -## Fabric -### Address slow/blocked links - -Previously if a router had multiple links and one of them was slow or blocked, it could prevent other traffic from moving. Now, if a link is unable to keep up with incoming traffic, payloads will be dropped. The end-to-end flow control and retransmission logic will handle re-sending the packet. - -Links have a 64 message queue for incoming messages. Up to 64 messages are taken off the queue, sorted in priority order and then sent. Once the sorted list of messages has been sent, the next set of messages are dequeue, sorted and sent. If the queue fills while the current set of sorted messges is being sent, message will now be dropped instead of waiting for queue space to open up. - -There is now a new per-link `link.dropped_msgs` metric to track how often links are dropping messages. - -### Destination Address added to Circuit Events - -When available, the remote address of the terminating side of a circuit is now available in the circuit event. - -Example: - -``` -{ - "namespace": "fabric.circuits", - "version": 2, - "event_type": "created", - "circuit_id": "kh7myU.bX", - "timestamp": "2022-09-12T19:08:20.461576428-04:00", - "client_id": "cl7zdm0d0000fbygdlzh268uq", - "service_id": "6SIomYCjH5Jio52szEtX7W", - "terminator_id": "7IIb1nU5yTfJVbaD8Tjuf3", - "instance_id": "", - "creation_timespan": 949916, - "path": { - "nodes": [ - "B3V.1kN40Y" - ], - "links": null, - "ingress_id": "26D7", - "egress_id": "wjo7", - "terminator_local_addr": "127.0.0.1:44822", - "terminator_remote_addr": "127.0.0.1:1234" - }, - "link_count": 0, - "path_cost": 262140 -} -``` - -## Ziti CLI -### Bug Fixes - -* [Issue 823](https://github.com/openziti/ziti/issues/843): Fixed quickstart bug with architecture detection not supporting `aarch64` - -## Identity - -Identity is a low-level library within Ziti and affects all Ziti components. - -### Bug Fixes - -* Fixed an issue where `alt_server_certs` were not always loaded and used for presenting TLS configurations - -## Ziti Library Updates - -* github.com/openziti/agent: [v1.0.1 -> v1.0.3](https://github.com/openziti/agent/compare/v1.0.1...v1.0.3) -* github.com/openziti/channel: [v0.18.58 -> v1.0.2](https://github.com/openziti/channel/compare/v0.18.58...v1.0.2) - * [Issue #68](https://github.com/openziti/channel/issues/68) - Allow send with no wait, if queue is full - * [Issue #69](https://github.com/openziti/channel/issues/69) - Respect OutQueueSize option - -* github.com/openziti/edge: [v0.22.54 -> v0.22.91](https://github.com/openziti/edge/compare/v0.22.54...v0.22.91) - * [Issue #1167](https://github.com/openziti/edge/issues/1167) - Send remote addr of dialed connection for xgress_edge_tunnel and xgress_edge_transport - * [Issue #1169](https://github.com/openziti/edge/issues/1169) - Update of service policy with patch fails if service policy type is not provided - * [Issue #1163](https://github.com/openziti/edge/issues/1163) - Support flushing dns cache with resolvectl - * [Issue #1164](https://github.com/openziti/edge/issues/1164) - Fix panic in xgress conn LogContext() - -* github.com/openziti/fabric: [v0.19.34 -> v0.19.67](https://github.com/openziti/fabric/compare/v0.19.34...v0.19.67) - * [Issue #484](https://github.com/openziti/fabric/issues/484) - Don't let slow/stalled links block other links - * [Issue #459](https://github.com/openziti/fabric/issues/459) - Add destination IP to fabric.circuits created message - * [Issue #492](https://github.com/openziti/fabric/issues/492) - Add HostId to terminator events - * [Issue #485](https://github.com/openziti/fabric/issues/485) - Metrics events timestamp format changed - -* github.com/openziti/foundation/v2: [v2.0.2 -> v2.0.4](https://github.com/openziti/foundation/compare/v2.0.2...v2.0.4) -* github.com/openziti/identity: [v1.0.5 -> v1.0.11](https://github.com/openziti/identity/compare/v1.0.5...v1.0.11) -* github.com/openziti/metrics: [v1.0.3 -> v1.0.7](https://github.com/openziti/metrics/compare/v1.0.3...v1.0.7) -* github.com/openziti/sdk-golang: [v0.16.104 -> v0.16.119](https://github.com/openziti/sdk-golang/compare/v0.16.104...v0.16.119) -* github.com/openziti/storage: [v0.1.16 -> v0.1.20](https://github.com/openziti/storage/compare/v0.1.16...v0.1.20) -* github.com/openziti/transport/v2: [v2.0.20 -> v2.0.28](https://github.com/openziti/transport/compare/v2.0.20...v2.0.28) -* github.com/openziti/ziti: [0.26.5 -> 0.26.6](https://github.com/openziti/ziti/compare/0.26.5...0.26.6) - -# Release 0.26.5 - -## What's New - -This build has no functional changes, but does have changes to the build workflow, -because github is deprecating certain action runners. See -https://github.blog/changelog/2022-08-09-github-actions-the-ubuntu-18-04-actions-runner-image-is-being-deprecated-and-will-be-removed-by-12-1-22/ -and -https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22/ -for details - -* MacOS builds are now done on the macos-11 github builder -* Linux builds are now done on the ubuntu-20.04 builder - -This changes the oldest supported operating system versions for ziti-controller and ziti-router to those -listed above, due to dependencies on system shared libraries that may not be available on older operating -system versions. - -If this change negatively impacts you, please let us on [Discourse](https://openziti.discourse.group). - -# Release 0.26.4 - -## What's New - -- Edge - - N/A -- Fabric - - Bug Fixes -- Ziti CLI - - `ziti fabric inspect` can now emit results to individual files using the `-f` flag -- SDK Golang - - N/A - -## Fabric -### Bug Fixes - -* [Issue 463](https://github.com/openziti/fabric/issues/463): fix for panic when dial service with instanceId and service has terminators but non for requested instanceId - -# Release 0.26.3 - -## What's New - -- Edge - - N/A -- Fabric - - Link Events - - Circuit Event Path Changes - - Allow attributing usage to hosting identities - - Capture IP/Port of edge routers creating api sessions - - Report high link latency when heartbeats time out - - Bug Fixes -- Ziti CLI - - N/A -- SDK Golang - - N/A -- Transport - - WS/WSS no longer require client certificate - -## Fabric -### Link Events - -Link events can now be configured in the controller events configuration. - -``` -events: - jsonLogger: - subscriptions: - - type: fabric.links - handler: - type: file - format: json - path: /var/log/ziti-events.log -``` - -#### Link Event Types - -* `dialed` : Generated when the controller sends a link dial message to a router -* `connected` : Generated when a router sends a link connected message to the controller -* `fault` : Generated when a router sends a link fault to the controller -* `routerLinkNew` : Generated when a router sends a router link message to the controler and the link is new to the controller -* `routerLinkKnown` : Generated when a router sends a router link message to the controller and the link is known -* `routerLinkDisconnectedDest` : Generated when a router sends a route link message to the controller and the router on the other side of the link is not currently connected. - - -#### Link Dialed Event Example -``` -{ - "namespace": "fabric.links", - "event_type": "dialed", - "timestamp": "2022-07-15T18:10:19.752766075-04:00", - "link_id": "47kGIApCXI29VQoCA1xXWI", - "src_router_id": "niY.XmLArx", - "dst_router_id": "YPpTEd8JP", - "protocol": "tls", - "dial_address": "tls:127.0.0.1:4024", - "cost": 1 -} -``` - -#### Link Connected Example -``` -{ - "namespace": "fabric.links", - "event_type": "connected", - "timestamp": "2022-07-15T18:10:19.973626185-04:00", - "link_id": "47kGIApCXI29VQoCA1xXWI", - "src_router_id": "niY.XmLArx", - "dst_router_id": "YPpTEd8JP", - "protocol": "tls", - "dial_address": "tls:127.0.0.1:4024", - "cost": 1, - "connections": [ - { - "id": "ack", - "local_addr": "tcp:127.0.0.1:49138", - "remote_addr": "tcp:127.0.0.1:4024" - }, - { - "id": "payload", - "local_addr": "tcp:127.0.0.1:49136", - "remote_addr": "tcp:127.0.0.1:4024" - } - ] -} -``` - -#### Link Fault Example -```` -{ - "namespace": "fabric.links", - "event_type": "fault", - "timestamp": "2022-07-15T18:10:19.973867809-04:00", - "link_id": "6slUYCqOB85YTfdiD8I5pl", - "src_router_id": "YPpTEd8JP", - "dst_router_id": "niY.XmLArx", - "protocol": "tls", - "dial_address": "tls:127.0.0.1:4023", - "cost": 1 -} -``` - -#### Router Link Known Example -```` -{ - "namespace": "fabric.links", - "event_type": "routerLinkKnown", - "timestamp": "2022-07-15T18:10:19.974177638-04:00", - "link_id": "47kGIApCXI29VQoCA1xXWI", - "src_router_id": "niY.XmLArx", - "dst_router_id": "YPpTEd8JP", - "protocol": "tls", - "dial_address": "tls:127.0.0.1:4024", - "cost": 1 -} -``` - -### Circuit Event Path Changes - -* Circuit event paths are now structured, rather than being a string -* The path structure contains a string list of routers in the path, ordered from initiator to terminator -* The path structure contains a string list of links in the path, ordered from initiator to terminator -* The path structure also contains the initiator and terminator xgress instance ids -* `terminator_local_addr` has been moved inside the nested path structure -* There is also a new version field, which is set to 2. - -Old circuit event: -``` -{ - "namespace": "fabric.circuits", - "event_type": "created", - "circuit_id": "Y4aVR-QfM", - "timestamp": "2022-07-19T12:39:21.500700972-04:00", - "client_id": "cl5sehx8k000d0agdrqyh9aa4", - "service_id": "bnNbAbsiYM", - "instance_id": "", - "creation_timespan": 812887, - "path": "[r/niY.XmLArx]", - "terminator_local_address": "", - "link_count": 0, - "path_cost": 262140, - "failure_cause": null -} -``` - -New circuit event: -``` -{ - "namespace": "fabric.circuits", - "version": 2, - "event_type": "created", - "circuit_id": "Llm58Bn-J", - "timestamp": "2022-07-19T12:41:31.043070164-04:00", - "client_id": "cl5sekp6z000dk0gdej54ipgx", - "service_id": "bnNbAbsiYM", - "terminator_id": "6CNJIXdRQ6mctdzHXEx8nW", - "instance_id": "", - "creation_timespan": 781618, - "path": { - "nodes": [ - "niY.XmLArx" - ], - "links": null, - "ingress_id": "v9yv", - "egress_id": "2mOq", - "terminator_local_addr": "" - }, - "link_count": 0, - "path_cost": 262140 -} -``` - -### Allow attributing usage to hosting endpoints -Terminator now has a Host ID, similar to the session Client ID. This can be used by higher levels to associate an id -with the terminator. The edge sets this field to the hosting session id. -Circuits now also track which terminator they are using, with a new terminatorId field. -These two changes together allow usage to be attributed to hosting entities as well -as dialing entities. - -### Capture IP/Port of edge routers creatign api sessions -When an edge router creates an API session, the ip:port of the edge router control channel will be captured. - -### Report high link latency when heartbeats time out -Previously when latency probes/heatbeats timed out, we wouldn't update the link latency. -Now, link latency will be set to 88888888888ns (or ~88seconds). This will help keep -these links from being used. The use of this marker value will also let timeouts be -identitied. - -### Bug Fixes - -* [Circuits on single router which is deleted are ophaned](https://github.com/openziti/fabric/issues/452) -* [API Session Certs not updated on ERs](https://github.com/openziti/edge/issues/1096) - -# Release 0.26.2 - -## What's New -- Transport - - WS/WSS Identity Support -- Identity - - Alternate Server Certificate Support -- Edge - - N/A -- Fabric - - N/A -- Ziti CLI - - Improvements to `ziti edge list posture-check` output -- SDK Golang - - N/A - -## Transport -### WS/WSS Identity Support - -The binding `ws` and `wss` in the transport library now use identity for server certificates. Prior to this release -`ws` and `wss` would load the `server_cert` and `key` field from files only. Both now support an optional field named -`identity`. If not specified, the root `identity` field will be used. If specified it will be used for the specified -`ws` or `wss` binding. Since this field is processed by the [identity library](https://github.com/openziti/identity) -it supports all the private key and certificate sources that the identity framework supports (file, pem, hsm, etc.). -Additionally it also enables SNI support for `ws` and `wss` listeners. - -```yaml -transport: - ws: - writeTimeout: 10 - readTimeout: 5 - idleTimeout: 5 - pongTimeout: 60 - pingInterval: 54 - handshakeTimeout: 10 - readBufferSize: 4096 - writeBufferSize: 4096 - enableCompression: false - identity: - server_cert: ./certs/er1.server.cert.pem - server_key: ./certs/key.pem -``` - -Example: Relying on in the root `server_cert` and `alt_server_cert` field -```yaml -v: 3 - -identity: - cert: ./certs/er1.client.cert.pem - server_cert: ./certs/er1.server.cert.pem - key: ./certs/er1.key.pem - ca: ./certs/er1.ca-chain.cert.pem - alt_server_certs: - - server_cert: ./certs/er1.alt.server.cert.pem - server_key: ./certs/er1.alt.server.cert.pem -... - -transport: - ws: - writeTimeout: 10 - readTimeout: 5 - idleTimeout: 5 - pongTimeout: 60 - pingInterval: 54 - handshakeTimeout: 10 - readBufferSize: 4096 - writeBufferSize: 4096 - enableCompression: false -``` - -## Identity -### Alternate Server Certificate Support - -The [identity library](https://github.com/openziti/identity) has been updated to support a new field: `alt_server_certs` -. This field is an array of objects with `server_cert` and `server_key` fields. `alt_server_certs` is not touched by -higher level Ziti automations to renew certificates and is intended for manual or externally automated use. It allows -additional server certificates to be used for the controller and routers with separate private keys. It is useful in -scenarios where routers or controllers are exposed using certificates signed by public CAs (i.e. Let's Encrypt). - -The `server_cert` and `server_key` work the same as the root identity properties of the same name. In any single -`server_cert` source that provides a chain, it assumed that all leaf-certificates are based on the private key in -`server_key`. If `server_key` is not defined, the default root `server_key` will be used. The identity library will use -the certificate chains and private key pairs specified in `alt_server_certs` when generating a TLS configuration via -`ServerTLSConfig()`. All identity sources are viable: `pem`, `file`, etc. - -Go Identity Config Struct Definition: -```go -type Config struct { - Key string `json:"key" yaml:"key" mapstructure:"key"` - Cert string `json:"cert" yaml:"cert" mapstructure:"cert"` - ServerCert string `json:"server_cert,omitempty" yaml:"server_cert,omitempty" mapstructure:"server_cert,omitempty"` - ServerKey string `json:"server_key,omitempty" yaml:"server_key,omitempty" mapstructure:"server_key,omitempty"` - AltServerCerts []ServerPair `json:"alt_server_certs,omitempty" yaml:"alt_server_certs,omitempty" mapstructure:"alt_server_certs,omitempty"` - CA string `json:"ca,omitempty" yaml:"ca,omitempty" mapstructure:"ca"` -} -``` - -JSON Example: - -```json -{ - "cert": "./ziti/etc/ca/intermediate/certs/ctrl-client.cert.pem", - "key": "./ziti/etc/ca/intermediate/private/ctrl.key.pem", - "server_cert": "./ziti/etc/ca/intermediate/certs/ctrl-server.cert.pem", - "server_key": "./ziti/etc/ca/intermediate/certs/ctrl-server.key.pem", - "ca": "./ziti/etc/ca/intermediate/certs/ca-chain.cert.pem", - "alt_server_certs": [ - { - "server_cert": "./ziti/etc/ca/intermediate/certs/alt01-ctrl-server.cert.pem", - "server_key": "./ziti/etc/ca/intermediate/certs/alt01-ctrl-server.key.pem" - }, - { - "server_cert": "pem:-----BEGIN CERTIFICATE-----\nIIGBjCCA+6gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZcxCzAJBgNVBAYTAlVT...", - "server_key": "pem:-----BEGIN CERTIFICATE-----\nMIIEuDCCAqCgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgYsxCzAJBgNVBAYTAlVT..." - } - ] -} -``` - -YAML Example: - -```yaml -cert: "./ziti/etc/ca/intermediate/certs/ctrl-client.cert.pem" -key: "./ziti/etc/ca/intermediate/private/ctrl.key.pem" -server_cert: "./ziti/etc/ca/intermediate/certs/ctrl-server.cert.pem" -server_key: "./ziti/etc/ca/intermediate/certs/ctrl-server.key.pem" -ca: "./ziti/etc/ca/intermediate/certs/ca-chain.cert.pem" -alt_server_certs: - - server_cert: "./ziti/etc/ca/intermediate/certs/alt01-ctrl-server.cert.pem" - server_key: "./ziti/etc/ca/intermediate/certs/alt01-ctrl-server.key.pem" - - server_cert: "pem:-----BEGIN CERTIFICATE-----\nIIGBjCCA+6gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZcxCzAJBgNVBAYTAlVT..." - server_key: "pem:-----BEGIN CERTIFICATE-----\nMIIEuDCCAqCgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgYsxCzAJBgNVBAYTAlVT..." -``` - - -# Release 0.26.1 - -There was a missed dependency update for xweb in 0.26.0 that kept SNI from working in HTTP API components. This would -affect SNI support for all REST APIs. - -## What's New -- Edge - - Fixes missing identity update in xweb -- Fabric - - Fixes missing identity update in xweb - - Bug Fixes -- Ziti CLI - - N/A -- SDK Golang - - N/A - -## Edge -### Bug Fixes -* [Fix panic on remote resolve connections](https://github.com/openziti/edge/pull/1088) - -## Fabric -### Bug Fixes -* [Logging erroneously indicates conflicting conditions returned from route attempt](https://github.com/openziti/fabric/issues/446) - -# Release 0.26.0 - -## Breaking Changes - -* The fabric management terminators API has changed the name of some fields. See below for details. -* The management channel, which was formerly deprecated is now removed -* Support for the old metrics subsystem has been removed. - -## What's New -- Edge - - N/A -- Fabric - - Terminator fields name changes - - Circuit failed events - - Additional circuit inspect information gathered - - Management channel has been removed - - Old metrics subsystem removed - - Circuit createdAt - - Bug Fixes -- Ziti CLI - - Terminator fields name changes - - Bug Fixes -- SDK Golang - - N/A -- Identity - - All OpenZiti implementations now support multiple certificate chains in the `server_cert` field to enable SNI scenarios - -## Fabric -### Terminator fields name changes - -The following fields have been renamed: - -* `identity` -> `instanceId` -* `identitySecret` -> `instanceSecret` - -The use of `identity` was confusing as identity is also used in the edge. While terminator instanceId -could be an edge identity id or something related to an edge identity, it could also be something -entirely unrelated. To reduce semantic overload, we've renamed it to instanceId, which hopefully is -more descriptive. In general all terminators with the same instance id should end up at the same -hosting process. - -### Circuit failed events - -The fabric can now emit circuit events when a circuit creation failed. - -Here is an example event: -``` -{ - "namespace": "fabric.circuits", - "event_type": "failed", - "circuit_id": "DtZLURFgP", - "timestamp": "2022-06-22T14:24:18.389718316-04:00", - "client_id": "cl4pxcvyl000m5qgd1xwcfg1u", - "service_id": "dH0lwdc5P", - "instance_id": "", - "creation_timespan": 739021, - "path": "[r/niY.XmLArx]->[l/1UZCUTGhHuJygXld8CxXPs]->[r/YPpTEd8JP]", - "terminator_local_address": "", - "link_count": 1, - "path_cost": 327152, - "failure_cause": "ROUTER_ERR_CONN_REFUSED" -} -``` - -Note the `event_type` is failed. For events of this type only, the `failure_cause` will be populated. The current set of failure causes is: - -* `INVALID_SERVICE` -* `ID_GENERATION_ERR` -* `NO_TERMINATORS` -* `NO_ONLINE_TERMINATORS` -* `NO_PATH` -* `PATH_MISSING_LINK` -* `INVALID_STRATEGY` -* `STRATEGY_ERR` -* `ROUTER_ERR_GENERIC` -* `ROUTER_ERR_INVALID_TERMINATOR` -* `ROUTER_ERR_MISCONFIGURED_TERMINATOR` -* `ROUTER_ERR_DIAL_TIMED_OUT` -* `ROUTER_ERR_CONN_REFUSED` - -In addition to the `failure_cause` field, there is also a new `instance_id` field. This will be populated for all circuit event types and -will have the instance id requested by the dial. This is generally only applicable when using addressable terminators. If no instance id -was specified, the field will be blank. - -### Circuit Inspect Enhancements - -Circuit inspect will now gather more information. - -* xgress details now includes the xgress sequence -* The receive buffer now has the following new fields - * acquiredSafely - * maxSequence - * nextPayload - * payloadCount - * sequence - -### Management channel removed - -The management channel has been removed. The ziti-fabric cli, which used to use the management channel, -has been absorbed into the ziti CLI, and now used the fabric REST API and/or websockets where appropriate. - -The `mgmt:` stanza in configuration files, which used to be required, will now be ignored. - -### Old Metrics Subsystem removed - -Formerly metrics could be exported to file via the `metrics:` configuration stanza. This was superceded by -the events subsystem, which contains metrics as well as other events. - -This also means that we no longer support pushing metrics directly to InfluxDB. However, we now have a -Prometheus endpoint available, which can also be used to feed information to InfluxDB. - -### Circuit createdAt - -Circuits now have a createdAt field, visible via the REST API. - -### Bug Fixes - -* Fix for issue where smart routing could break a circuit if a router became unavailable while circuits were being updated - -## Ziti CLI -### Terminator Field Name Changes -The `ziti fabric create terminator` operation now takes a `--instance-id` flag instead of an `--identity` flag. - -The `ziti fabric list terminators` operation now shows `InstanceId` instead of `Identity`. - -### Bug Fixes - -* Fixed a bug where the controller advertised name was not properly set when the value of EXTERNAL_DNS was set. - -# Release 0.25.13 - -## What's New -- Edge - - Bug fixes -- Fabric - - N/A -- Ziti CLI - - N/A -- SDK Golang - - N/A - -## Edge -### Bug Fixes - -* [https://github.com/openziti/edge/issues/1055](Fix for an edge router panic) - -# Release 0.25.12 - -## What's New - -No functional changes, build process changes only - -# Release 0.25.11 - -## What's New -- Edge - - Management API: Breaking Changes - - Management API: New Endpoints - - Management API: JWKS Support - - Bug fixes -- Fabric - - Bug fixes - - Metrics API -- Ziti CLI - - N/A -- SDK Golang - - N/A - -## Edge -### Management API Breaking Changes - -The following Edge Management REST API Endpoints have breaking changes: - -- `POST /ext-jwt-signers` - - `kid` is required if `certPem` is specified - - `jwtEndpoint` or `certPem` is required - - `issuer` is now required - - `audience` is now required -- `PUT /ext-jwt-signers` - `kid` is required if `certPem` is specified, `issuer` is required, `audience` is required - - `kid` is required if `certPem` is specified - - `jwtEndpoint` or `certPem` is required - - `issuer` is now required - - `audience` is now required -- `PATCH /ext-jwt-signers` - `kid` is required if `certPem` is specified, `issuer` is required, `audience` is required - - `kid` is required if `certPem` is set and `kid` was not previously set - - `jwtEndpoint` or `certPem` must be defined or previously set of the other is `null` - - `issuer` may not be set to `null` or `""` - - `audience` may not be set to `null` or `""` - -The above changes will render existing `ext-jwt-signers` as always failing authentication is `issuer` and `audience` -were not previously set. - -### Management API: New Endpoints - -The following new endpoints have been added: - -- `GET /identities/:id/enrollments` - returns a pre-filtered list of enrollments for the identity specified by `:id` - -### Management API: JWKS Support - -JWKS (JSON Web Key Sets) is defined in [rfc7517](https://www.rfc-editor.org/rfc/rfc7517) and defines the format -and methods that public and private keys may be published via JSON. JWKS support enables Ziti to obtain -public signing keys from identity providers as needed. This enables identity providers to rotate signing keys without -breaking SSO integrations. - -To facilitate this, `ext-jwt-signers` now support `jwksEndpoint` which is a URL that resolves to a service that returns -a JWKS JSON payload. When specified, the `certPem` and `kid` files are no longer required. Additionally, when a JWT `iss` -fields matches an existing `extj-jwt-signers`'s `issuer` field and the `kid` is currently unknown, the `jwksEndpoint` -will be interrogated for new signing keys. The `jwksEndpoint` will only be interrogated at most once every five seconds. - -### Bug Fixes - -* https://github.com/openziti/edge/issues/1027 -* https://github.com/openziti/edge/issues/1025 -* https://github.com/openziti/edge/issues/1035 -* https://github.com/openziti/edge/issues/1045 -* https://github.com/openziti/edge/issues/1049 - -## Fabric -### Bug Fixes - -* https://github.com/openziti/fabric/issues/406 -* https://github.com/openziti/ziti/issues/565 - Moved terminator information to its own field. - -### Metrics API - -The following new endpoint has been added: -- `GET /metrics` - returns metrics for the controller and all routers in the Prometheus text exposition format. See [https://openziti.github.io/ziti/metrics/prometheus.html] for more information and instructions to set it up. - - -# Release 0.25.10 - -## What's New -- Edge - - N/A -- Fabric - - N/A -- Ziti CLI - - CLI support for enrollments/authenticators/re-enrollment - - Fix prox-c download - - ziti-fabric cleanup - - Add public attributes and service policies allowing public access to routers in docker-compose quickstart - - Add file overwrite checks for the "Local ziti quickstart" script -- SDK Golang - - N/A - -## Ziti CLI - -### CLI support for enrollments/authenticators/re-enrollment - -The CLI has been augmented to support the following commands: - -- `ziti edge list authenticators` - to generically list existing authenticators -- `ziti edge list enrollments` - to generically list existing enrollments -- `ziti edge delete enrollment ` - to generically delete existing enrollments -- `ziti edge delete authenticator ` - to generically delete existing authenticator -- `ziti edge create enrollment ott ...` - to create a new one-time-token enrollment for an existing identity -- `ziti edge create enrollment ottca ...` - to create a new one-time-token enrollment for an existing identity for a 3rd party CA issued certificate -- `ziti edge create enrollment updb ...` - to create a new updb (username/password) enrollment for an existing identity - -These commands, specifically the enrollment related ones, can be used to re-enroll existing identities. See the 0.25.9 changeFor all arguments and options, please see their CLI related `-h`. - -Also note that the `ziti edge delete authenticator updb` command has been supplanted by `ziti edge delete authenticator ` - -### Fix prox-c download - -The prox-c releases on GitHub now include the architecture in the download URL. -`ziti install ziti-prox-c` has been updated to take this into account. - -### ziti-fabric cleanup - -Ziti CLI install/upgrade/remove commands related to `ziti-fabric` have been -removed since `ziti-fabric` was deprecated and is not being published anymore. - -# Release 0.25.9 - -## What's New -- Edge - - Create Identity Enrollments / Allow Identity Re-Enrollment -- Fabric - - Bug fixes -- Ziti CLI - - N/A -- SDK Golang - - N/A - -## Edge - -### Create Identity Enrollments / Allow Identity Re-Enrollment - -The ability to create identity enrollments, allows new enrollment JWTs to be generated throughout any identity's -lifetime. This allows Ziti to support scenarios where re-enrolling an identity is more convenient than recreating it. - -The most common scenario is new device transitions. Previously, the only way to deal with this scenario was to remove -the identity and recreate it. Depending on how the role attributes and policies were configured this may be a trivial or -demanding task. The more policies utilizing direct identity reference, instead of attribute selectors, the -more difficult it is to recreate that identity. Additional, re-enrolling an identity retains MFA TOTP enrollment, -recovery codes, and authentication policy assignments/configuration. - -#### New Endpoints -- `POST /enrollments` - Create enrollments associated to an identity - -#### POST /enrollments Properties - -- `method` - required - one of `ott`, `ottca`, or `updb` to specify the type of enrollment (this affects other field requirements) -- `expiresAt` - required - the date and time the enrollment will expire -- `identityId` - required - the identity the enrollment is tied to -- `caId` - `ottca` required, others ignored - the verifying 3rd party CA id for the `ottca` enrollment -- `username` - `updb` required, others ignored - the default username granted to an identity during `updb` enrollment - -#### Creating Identity Enrollments - -Identity enrollments only allow one outstanding enrollment for each type of enrollment supported. For example attempting -to create multiple `ott` (one-time-token) enrollments will return a `409 Conflict` error. Deleting existing enrollments will -resolve the issue. - -As noted in the properties' section above, some properties are utilized for different `method` types. Please be aware -that while setting these values through the API will not be rejected, they are not utilized. - -Please note that it is possible for an identity to have multiple authentication types. Authentication policies should -be used to restrict the type of authenticators that are valid, even if enrolment has been completed. - - -## Fabric - -### Bug Fixes - -* https://github.com/openziti/fabric/issues/404 - * Goroutine pool metrics for xgress and link dials not working - -# Release 0.25.8 - -## Maintenance -Improved MacOS compatibility with cert handling and ioKit. - -## Fabric - -### Bug Fixes - -* https://github.com/openziti/fabric/pull/403 - -# Release 0.25.7 - -## Fabric - -### Xgress and Link Dial Defaults Updated -The default size of the xgress dialer pool has been updated to 128 from 10. -The default size of the link dialer pool has been updated to 32 from 10. - -### Dial Timeout Propagation -Currently each section of the dial logic has its own timeouts. It can easily happen that -an early stage timeout expires while a later one doesn't, causing work to be done whose -results will be ignored. A first pass has been completed at threading timeouts/deadline -through the dial logic, spanning controller and routers, so that we use approximately -the same timeout througout the dial process. - -### Link Initial Latency -Previously links would start with a latency of 0, which they would keep until the latency -was reported from the routers. Now, latency will be initialized to a default of 65 seconds, -which it will stay at until an actual latency is reported. If a new link is the only -available one for a given path, this won't prevent the link from being used. However, if -there are other paths available, this will bias the network to the existing paths until -it can see what the actual link latency is. Latency should generally be reported -within a minute or so. - -This value can be adjusted in the controller config, under the `network` section. - -``` -network: - initialLinkLatency: 65s -``` - -### Link Verification changes -In previous releases when a router recieved a link dial from another router, it would verify -that the link was known to the controller and the dialing router was valid. Router validity -was checked by making sure the fingerprints of the certs used to establish the link matched -the fingerprints on record for the router. - -From this release forwards we will only verify that the router requesting the link is valid -and won't check that the link is valid. This is because the router has more control over the -links now, and in future, may take over more of link management. As long as we're getting -link dials from a valid router, we don't care if they were controller initiated or router -initiated. For now they are all controller initiated, but this also covers the case where -the controller times out a link, but the router still manages to initiate it. Now the router -can report the link back to the controller and it will be used. - -### Add Goroutine Pool Metrics -We use goroutine pools which are fed by queues in several places, to ensure that we have -guardrails on the number of concurrent activities. There are now metrics emitted for these -pools. - -The pool types on the controller are: - -* pool.listener.ctrl -* pool.listener.mgmt - -The pool types on router are: - -* pool.listener.link -* pool.link.dialer -* pool.route.handler -* pool.listener.xgress_edge (if edge is enabled) - -Each pool has metrics for - -* Current worker count -* Current queue size -* Current active works -* Work timer, which includes count of work performed, meter for work rate and histogram for work execution time - - -An example of the metric names for pool.listener.link: - -``` -pool.listener.link.busy_workers -pool.listener.link.queue_size -pool.listener.link.work_timer.count -pool.listener.link.work_timer.m15_rate -pool.listener.link.work_timer.m1_rate -pool.listener.link.work_timer.m5_rate -pool.listener.link.work_timer.max -pool.listener.link.work_timer.mean -pool.listener.link.work_timer.mean_rate -pool.listener.link.work_timer.min -pool.listener.link.work_timer.p50 -pool.listener.link.work_timer.p75 -pool.listener.link.work_timer.p95 -pool.listener.link.work_timer.p99 -pool.listener.link.work_timer.p999 -pool.listener.link.work_timer.p9999 -pool.listener.link.work_timer.std_dev -pool.listener.link.work_timer.variance -``` - -### Add Link Count and Cost to Circuit Events -Link Count will now be available on all circuit events. Circuit cost will be available on -circuit created events. The circuit cost is the full circuit cost (router costs + link costs -+ terminator costs). - -Example: -``` -{ - "namespace": "fabric.circuits", - "event_type": "created", - "circuit_id": "XpSWLZB1P", - "timestamp": "2022-05-11T13:00:06.976266668-04:00", - "client_id": "cl31tuu93000iaugd57qv6hjc", - "service_id": "dstSybunfM", - "creation_timespan": 969933, - "path": "[r/h-DqbP927]->[l/1qp6LIzSlWkQM1jSSTJG1j]->[r/Ce1f5dDCey]", - "link_count": 1, - "path_cost": 890 -} -``` - -### Remove ziti-fabric CLI command -The previously deprecated ziti-fabric command will no longer be published as part of Ziti releases. -All of ziti-fabric's functionality is available in the `ziti` CLI under `ziti fabric`. - -### Add link delete -If a link gets in a bad state (see bug below for how this could happen), you can now use -`ziti fabric delete link `. This will remove the link from the controller as well -as send link faults to associated routers. If the link is not known to the controller, a -link fault will be sent to all connected routers. - -## Miscellaneous - -The `ziti-probe` tool will no longer be built and published as part of Ziti releases. - -### Bug Fixes - -* https://github.com/openziti/fabric/issues/393 -* https://github.com/openziti/fabric/issues/395 -* https://github.com/openziti/channel/issues/50 -* `ziti fabric list circuits` was showing the router id instead of the link id in the circuit path - -# Release 0.25.6 - -* Moving from Go 1.17 to 1.18 -* Bug fix: Fixes an issue in quickstart "Host it anywhere" where an EXTERNAL_DNS was not added to the PKI causing failures when attempting to use a router from outside the hosted environment. - -# Release 0.25.5 - -* Bug fix: Fixes an issue where dial could fail if the terminator router didn't response to routing last -* Enhancement: Updated Control Channel to use new heartbeat logging mirroring Links in Release `0.25.0` -* Enhancement: Added Circuit Creation Timespan which denotes how long the fabric took to construct a requested circuit. -```json -{ - "namespace": "namespace", - "event_type": "event_type", - "circuit_id": "circuit_id", - "timestamp": "2022-04-07T14:00:52.0500632-05:00", - "client_id": "client_id", - "service_id": "service_id", - "creation_timespan": 5000000, //Timespan in nanoseconds - "path": "path" -} -``` - -* Bug fix: Fixes an issue where Edge administrator checks would not take default admin flag into account -* Bug fix: Fix an issue with docker-compose quickstart not properly loading env vars -* Enhancement: Add support for Apple M1 using the ziti quickstart CLI script -* Enhancement: Use an env file for docker-compose quickstart for easier version changes and other duplicated field values -* Enhancement: Allow for version override using the ziti quickstart CLI script -* Change: Renamed `pushDevBuild.sh` to `buildLocalDev.sh`, the script used for building a local dev version of the docker quickstart image -* Bug fix: Fixes an issues where `isAdmin` would always default to false on updates (put/patch) -* Bug fix: Identity property `externalId` was not properly rendering on `GET` and not handled consistently on `PUT` and `PATCH` -* Enhancement: External JWT Signer Issuer & Audience Validation -* Enhancement: Add ability to define local interface binding for link and controller dial -* Bug fix: Edge Management REST API Doc shows Edge Client REST API Doc -* Enhancement: `ziti db explore ` command has been added to explore offline database files -* Enhancement: The mgmt API is now available via websocket. The stream commands are now available on `ziti fabric` -* Enhancement: Most list commands have been updated with tabular output -* Enhancement: `ziti edge show` is now available with subcommands `config` and `config-type` - * `ziti edge list configs` no longer shows the associated json. It can be viewed using `ziti edge show config ` -* Enhancement: `ziti edge update config-type` is now available -* Enhancement: `ziti edge create|update identity` now supports `--external-id` -* Bug fix: Fixes an issue where the router config would use hostname instead of the DNS name -* Bug fix: When establishing links, a link could be closed while being registered, leading the controlller and router to get out of sync -* Enhancement: Add min router cost. Helps to minimize unnecessary hops. - * Defaults to 10, configurable in the controller config with the minRouterCost value under `network:` -* Enhancement: Can now see xgress instance and link send buffer pointer values in circuit inspections. This allows correlating to stackdumps -* Enhancement: Can now see xgress related goroutines by using `ziti fabric inspect '.*' circuitAndStacks:` -* Enhancement: If a router connects to the controller but is already connected, the new connection now takes precedence - * There is a configurable churn limit, which limits how often this can happen. - * The default is 1 minute and is settable via `routerConnectChurnLimit` under `network` -* Enhancement: Flow control changes - * Duplicate acks won't shrink window. Duplicate acks imply retransmits and the retransmits already affect the window size - * Drop min round trip time scaling to 1.5 as will get scaled up as needed by duplicate ack detection - * Drop round trip time addition to 0 from 100ms and rely purely on scaling - * Avoid potential stall by always allowing at least one payload into sender side, even when receiver is full. - * This way if receiver signal to sender is lost, we'll still having something trying to send -* Enhancement: When router reconnects to controller, re-establish any embedded tunneler hosting on that router to ensure router and controller are in sync - - -## External JWT Signer Issuer & Audience Validation - -External JWT Signers (endpoint `/external-jwt-signers`) now support `issuer` and `audience` optional string fields. -These fields may be set to `null` on `POST`/`PUT`/`PATCH` or omitted; which will result in no validation of incoming -JWT's `aud` and `iss` fields. If `issuer` is defined, JWT `iss` fields will be validated. If `audience` is defined, JWT -`aud` fields will be validated. If a JWT contains multiple audience values as an array of strings and will be validated, -validation will check if the External JWT Signer's `audience` value is present as one of the values. - -## Add ability to define local interface binding for link and controller dial - -The network interface used to dial the controller and router links can be provided in the router configuration file. The interface can be provided as either a name or an IP address. - -```yaml -ctrl: - endpoint: tls:127.0.0.1:6262 - bind: wlp5s0 - -link: - dialers: - - binding: transport - bind: 192.168.1.11 -``` - -# Release 0.25.4 - -**NOTE**: Link management is undergoing some restructuring to support better link costing and multiple interfaces. The link types introduced in 0.25 should not be used. A more complete replacement is coming soon. - -* Enhancement: Add additional logging information to tunnel edge routers. Now adds the local address to the router/link chain. -* Enhancement: Add additional metrics for terminator errors. - - `service.dial.terminator.timeout`: Raised when the terminator times out when connecting with it's configured endpoint - - `service.dial.terminator.connection_refused`: Raised when the terminator cannot connect to it's configured endpoint - - `service.dial.terminator.invalid`: Raised when the edge router is unable to get or access the terminator - - `service.dial.terminator.misconfigured`: Raised when the fabric is unable to find or create the terminator -* Enhancement: Authentication Policies -* Enhancement: JWT Primary/Secondary Authentication -* Enhancement: Required TOTP (fka MFA) Enrollment -* Bug fix: Fix router panic which can happen on link bind -* Bug fix: Fix router panic which can happen if the router shuts down before it's fully up an running -* Enhancement: Avoid router warning like `destination exists for [p57a]` by not sending egress in route, since egress will always already be established -* Enhancement: Change default dial retries to 3 from 2 -* Enhancement: Add circuit inspect. `ziti fabric inspect .* circuit:` will now return information about the circuit from the routers. This will include routing information as well as flow control data from the initiator and terminator. -* Change: Support for link types removed - -## Authentication Policies - -Authentication policies are configuration that allows administrators to enforce authentication requirements. A single -authentication policy is assigned to each identity in the system. This assignment is controlled on the `Identity` -entities within the Ziti Edge Management API. If an authentication policy is not specified, a system default policy is -applied that. The default policy represents the behavior of Ziti v0.25.3 and earlier and may be updated to the network's -requirements. - -### Assignment - -The `Identity` entity now supports a new field `authPolicyId`. In the REST Edge API this field is optional during create -and existing calls to `POST /identities` will succeed. Every identity must have exactly one authentication policy -assigned to it. If one is not assigned, the default authentication policy will be used (`authPolicyId` == `default`) - -Example w/o `authPolicyId`: - -`POST /edge/v1/management/identities` -```json - -{ - "name": "zde", - "type": "User", - "isAdmin": false, - "enrollment": { - "ott": "true" - }, - "roleAttributes": [ - "dial" - ] -} -``` - -Example w/ `authPolicyId`: - -`POST /edge/v1/management/identities` -```json -{ - "name": "zde", - "type": "User", - "isAdmin": false, - "enrollment": { - "ott": "true" - }, - "roleAttributes": [ - "dial" - ], - "authPolicyId": "xyak1." -} -``` - -### Default Authentication Policy - -Ziti contains a single default authentication policy that is marked as a "system" definition. It cannot be deleted, -but it can be updated. This authentication policy has a well known id of `default`. It can be viewed according to the -following example: - -`GET /edge/v1/management/auth-policies/default` -```json -{ - "data": { - "_links": { - "self": { - "href": "./auth-policies/default" - } - }, - "createdAt": "2022-03-30T17:54:55.785Z", - "id": "default", - "tags": {}, - "updatedAt": "2022-03-30T17:54:55.785Z", - "name": "Default", - "primary": { - "cert": { - "allowExpiredCerts": true, - "allowed": true - }, - "extJwt": { - "allowed": true, - "allowedSigners": null - }, - "updb": { - "allowed": true, - "lockoutDurationMinutes": 0, - "maxAttempts": 0, - "minPasswordLength": 5, - "requireMixedCase": false, - "requireNumberChar": false, - "requireSpecialChar": false - } - }, - "secondary": { - "requireExtJwtSigner": null, - "requireTotp": false - } - }, - "meta": {} -} -``` - -### AuthPolicy Endpoints - -The following endpoints were added to support CRUD operations: - -- List `GET /edge/v1/management/auth-policies` -- Create `POST /edge/v1/management/auth-policies` -- Detail `GET /edge/v1/management/auth-policies/{id}` -- Replace `PUT /edge/v1/management/auth-policies/{id}` -- Patch `PATCH /edge/v1/management/auth-policies/{id}` -- Delete `Delete /edge/v1/management/auth-policies/{id}` - -And have the following properties: - -- `name`: a unique name for the policy -- `primary.cert.allowed` - allow certificate based authentication -- `primary.cert.allowExpiredCerts` - allows clients with expired certificates to authenticate -- `primary.extJwt.allowed` - allow external JWT authentication -- `primary.extJwt.allowedSigners` - a specific set of external jwt signers that are allowed, if not set all enabled signers are allowed -- `primary.updb.allowed` - allow username/password authentication -- `primary.updb.lockoutDurationMinutes` - the number of minutes to lock an identity after exceeding `maxAttempts`, 0 = indefinite -- `primary.updb.minPasswordLength` - the minimum lengths passwords must be, currently a placeholder -- `primary.updb.requireMixedCase` - requires passwords to include mixed cases, currently a placeholder -- `primary.updb.requireNumberChar` - requires passwords to include at least 1 number, currently a placeholder -- `primary.updb.requireSpecialChar` - requires passwords to include at least 1 special character, currently a placeholder -- `secondary.requireExtJwtSigner` - requires an additional JWT bearer token be provided on all API requests, null is disabled -- `secondary.requireTotp` - requires TOTP (fka MFA enrollment) enrollment to be completed and in use -Example Create: - -```json -{ - "name": "Original Name 1", - "primary": { - "cert": { - "allowExpiredCerts": true, - "allowed": true - }, - "extJwt": { - "allowed": true, - "allowedSigners": [ - "2BurseGARW" - ] - }, - "updb": { - "allowed": true, - "lockoutDurationMinutes": 0, - "maxAttempts": 5, - "minPasswordLength": 5, - "requireMixedCase": true, - "requireNumberChar": true, - "requireSpecialChar": true - } - }, - "secondary": { - "requireExtJwtSigner": null, - "requireTotp": false - }, - "tags": { - "originalTag1Name": "originalTag1Value" - } -} -``` - -## JWT Primary/Secondary Authentication - -A new primary authentication mechanism is available in addition to `cert` and `passsword` (UPDB). The internal -method name is `ext-jwt` and it allows authentication by providing a bearer token by a known external JWT signer. -A new entity `External JWT Singer` has been introduced and is defined in subsequent sections. - -Successful primary authentication requires: - -1) The target identity must have an authentication policy that allows primary external JWT signer authentication -2) The JWT provided must include a `kid` that matches the `kid` defined on an external JWT signer -3) The JWT provided must include a `sub` (or configured claim) that matches the identity's `id` or `externalId` (see below) -4) The JWT provided must be properly signed by the signer defined by `kid` -5) The JWT provided must be unexpired -6) The encoded JWT must be provided during the initial authentication in the `Authorization` header with the prefix `Bearer ` and subsequent API calls - -A new secondary factor authentication mechanism is available in addition to TOTP (fka MFA). Both TOTP and `ext-jwt` -secondary authentication factors can be enabled at the same time for a "nFA" setup. - -Successful secondary authentication requires all the same JWT token validation items, but as a secondary -factor, not providing a valid JWT bearer token on API requests will drop the request's access to -"partially authenticated" - which has reduced access. Access can be restored by providing a valid JWT bearer token. -Additionally, to turn on the functionality, an authentication policy that has the `requireExtJwtSigner` field must be -set to a valid external JWT signer and assigned to the target identity(ies). - -### External JWT Signers - -External JWT Signers can be managed on the following new REST Edge Management API endpoints: - -- List `GET /edge/v1/management/external-jwt-signers` -- Create `POST /edge/v1/management/external-jwt-signers` -- Detail `GET /edge/v1/management/external-jwt-signers/{id}` -- Replace `PUT /edge/v1/management/external-jwt-signers/{id}` -- Patch `PATCH /edge/v1/management/external-jwt-signers/{id}` -- Delete `Delete /edge/v1/management/external-jwt-signers/{id}` - -And support the following properties: - -- `name` - a unique name for the signer -- `certPem` - a unique PEM x509 certificate for the signer -- `enabled` - whether the signer is currently enabled or disabled -- `externalAuthUrl` - the URL clients should use to obtain a JWT -- `claimsProperty` - the property to alternatively use for the target identity's `id` or `externalId` -- `useExternalId` - whether to match the `claimsProperty` to `id` (false) or `externalId` (true) -- `kid` - a unique `kid` value that will be present in a valid JWT's `kid` header - -Example Create: - -`POST /edge/v1/management/external-jwt-signers` -```json -{ - "certPem": "-----BEGIN CERTIFICATE-----\nMIIBizC ...", - "enabled": true, - "kid": "c7e2081d-b8f0-44b1-80fa-d73872692fd6", - "name": "Test JWT Signer Pre-Patch Kid", - "externalAuthUrl" : "https://my-jwt-provide/auth", - "claimsProperty": "email", - "useExternalId": "true" -} -``` - -The above example creates a new signer that is enabled and that will instruct clients that they can attempt to obtain -a JWT from `https://my-jwt-provide/auth`. The JWT that is returned from `https://my-jwt-provide/auth` should have a -`kid` header of `c7e2081d-b8f0-44b1-80fa-d73872692fd6` and the `email` claim will be matched against Ziti identity's -`externalId` field. - -### Identity ExternalId - -Ziti identity's have a new optional field named `externalId`. All existing identities will have this value defaulted -to `null`. This value is unique if set and is currently only used for external JWT signer authentication. Ziti treats -the value as a case-sensitive opaque string. - -It has standard CRUD access on the `edge/v1/management/identities` endpoints for `POST`, `PUT`, `PATCH`, and `GET`. - -## Required TOTP (fka MFA) Enrollment - -With authentication policies, it is now possible to enforce MFA enrollment at authentication. Prior to this release, -it was only possible to restrict access to service(s) via posture checks. The authentication policy value -`secondary.requireTotp` being set to true will now force identities into a "partially authenticated" state unless -TOTP MFA is completed. - -Due to this, it is now possible to enroll in TOTP MFA while "partially authenticated". It is not possible to manipulate -an existing completed enrollment. - -## Circuit Inspection -Here is an example of the kind of information you can get with the new circuit inspection factility - -``` -$ ziti fabric inspect .* circuit:GrtfcCjzD -j | jq -{ - "errors": null, - "success": true, - "values": [ - { - "appId": "aKYdwbTf7l", - "name": "circuit:GrtfcCjzD", - "value": { - "Destinations": { - "1LKMInhzapHdurbaABaa50": { - "dest": "CX1kmb0fAl", - "id": "1LKMInhzapHdurbaABaa50", - "protocol": "tls", - "split": true, - "type": "link" - }, - "wPBx": { - "addr": "wPBx", - "originator": "Initiator", - "recvBuffer": { - "lastSizeSent": 21, - "size": 0 - }, - "sendBuffer": { - "accumulator": 47, - "acquiredSafely": true, - "blockedByLocalWindow": false, - "blockedByRemoteWindow": false, - "closeWhenEmpty": false, - "closed": false, - "duplicateAcks": 0, - "linkRecvBufferSize": 23, - "linkSendBufferSize": 0, - "retransmits": 0, - "retxScale": 2, - "retxThreshold": 100, - "successfulAcks": 3, - "timeSinceLastRetx": "1m17.563s", - "windowsSize": 16384 - }, - "timeSinceLastLinkRx": "1m11.451s", - "type": "xgress" - } - }, - "Forwards": { - "1LKMInhzapHdurbaABaa50": "wPBx", - "wPBx": "1LKMInhzapHdurbaABaa50" - } - } - }, - { - "appId": "CX1kmb0fAl", - "name": "circuit:GrtfcCjzD", - "value": { - "Destinations": { - "1LKMInhzapHdurbaABaa50": { - "dest": "aKYdwbTf7l", - "id": "1LKMInhzapHdurbaABaa50", - "protocol": "tls", - "split": true, - "type": "link" - }, - "MZ9x": { - "addr": "MZ9x", - "originator": "Terminator", - "recvBuffer": { - "lastSizeSent": 23, - "size": 0 - }, - "sendBuffer": { - "accumulator": 45, - "acquiredSafely": true, - "blockedByLocalWindow": false, - "blockedByRemoteWindow": false, - "closeWhenEmpty": false, - "closed": false, - "duplicateAcks": 0, - "linkRecvBufferSize": 21, - "linkSendBufferSize": 0, - "retransmits": 0, - "retxScale": 2, - "retxThreshold": 102, - "successfulAcks": 2, - "timeSinceLastRetx": "457983h26m1.336s", - "windowsSize": 16384 - }, - "timeSinceLastLinkRx": "1m16.555s", - "type": "xgress" - } - }, - "Forwards": { - "1LKMInhzapHdurbaABaa50": "MZ9x", - "MZ9x": "1LKMInhzapHdurbaABaa50" - } - } - } - ] -} -``` - -# Release 0.25.3 - -* Enhancement: Add cost and precedence to host.v1 and host.v2 config types. This allows router-embedded tunnelers the ability to handle HA failover scenarios. -* Bug fix: Router link listener type was only inferred from the adverise address, not the bind address - -# Release 0.25.2 - -## Deprecations -The Ziti Edge management REST `/database` and `/terminators` endpoints are being deprecated. They belong in the -fabric management API, but there was no fabric REST api at the time when they were added. Now that they are -available under fabric, they will be removed from the edge APIs in a future release, v0.26 or later. - -## What's New - -* Enhancement: Only translate router ids -> names in `ziti edge traceroute` when requested to with flag -* Enhancement: Add the /database rest API from edge to fabric, where they below - * `ziti fabric db` now as the same commands as `ziti edge db` -* Enhancement: Add `ziti agent` command for sending IPC commands. Contains copy of what was under `ziti ps`. -* Enhancement: Add `ziti agent controller snapshot-db ` IPC command - - -# Release 0.25.1 - -* Bug fix: Fix panic caused by race condition at router start up - * Regression since 0.25.0 - -# Release 0.25.0 - -## Breaking Changes -Routers with version 0.25.0 or greater must be used with a controller that is also v0.25 or greater. -Controllers will continue to work with older routers. Router of this version should also continue to interoperate with older routers. - -NOTE: You may be used to seeing two links between routers, if they both have link listeners. Starting with v0.25 expect to see only -a single link between routers, unless you use the new link types feature. - -## What's New - -* Bug fix: Fixed an issue with the ziti CLI quickstart routine which also affected router and controller config generation leaving many config fields blank or incorrect. - * Note: This fix was previously reported to have been fixed in 0.24.13 but the fix was actually applied to this release. -* Enhancement: Router Link Refactor - * Support for multiple link types - * Existing link notifications - * Link heartbeats/latency have changed - * Inspect and ps support for links - * Router version dissemination - * Distributed control preparation -* Enhancement: `ziti fabric list routers` now includes the link listener types and advertise addresses - -## Router Link Refactor - -### Multiple Link Types -Routers can now configure multiple link listeners. Listeners now support an option 'type' attribute. If no type is provided, the link type will be derived from the address. For example, given the following configuration: - -``` -link: - dialers: - - binding: transport - listeners: - - binding: transport - bind: tls:127.0.0.1:7878 - advertise: tls:127.0.0.1:7878 - - - binding: transport - bind: tls:127.0.0.1:5876 - advertise: tls:127.0.0.1:5876 - type: cellular -``` - -The first listener will have a type of `tls` and the second listener will have a type of `cellular`. - -Routers will now try to maintain one link of each type available on the target router. - -When using `ziti fabric list links` the link type will now be shown. - -### Existing link notifications -As the controller doesn't persist links, when the controller restarts or loses connection it loses all information about router links. Routers can now notify the controller about existing links when they reconnect. If they receive a link dial request for a link that they already have (based on the target router and link type), they can now report back the existing link. This should prevent the number of links to remain relatively constant. - -### Link Heartbeats - -Because we are now limiting the number of links it is even more vital to ensure that links are healthy, and to respond quickly when links become unresponsive. To that end links now use heartbeats. As data flows across the link, heartbeat headers will be added periodically. Heartbeat responses will be added to return messages. If the link is currently quiet, explicit heartbeat messages will be sent. Heartbeats will also be used to measure latency. If heartbeats are unreturned for a certain amount of time, the link will be considered bad and torn down, so a new one can be established. - -The link.latency metric now is calculated starting when the message is about to be sent. It may have a few extra milliseconds time, as the response waits briefly to see if there's an existing message that the response can piggyback on. - -Previously link.latency include both queue and network time. Now that it only has network time, there's a new metrics, `link.queue_time` which tracks how long it takes messages to get from send requested to just before send. - -### Inspect and ps support for links - -`ziti fabric inspect .* links` can now be used to see what links each router knows about. This can be useful to determine if/how the controller and routers may have gotten out of sync. - -Router can also be interrogated directly for their links via IPC, using `ziti ps`. - -``` -$ ziti ps router dump-links 275061 -id: 4sYO18tZ1Fz4HByXuIp1Dq dest: o.oVU2Qm. type: tls -id: 19V7yhjBpHAc2prTDiTihQ dest: hBjIP2wmxj type: tls -``` - -### Router version dissemination - -Routers now get the version of the router they are dialing a link to, and pass their own version to that router as part of the dial. This allows routers to only enable specific features if both sides of the link support it. - -### Distributed Control preparation - -Giving the routers have more control over the links prepares us for a time when routers may be connected to multiple controllers. Routers will be able to notify controllers of existing links and will be prepared to resolve duplicate link dial requests from multiple sources. - -# Release 0.24.13 - -* Enhancement: Added new `noTraversal` field to routers. Configures if a router should allow/disallow traversal. Required on create/update commands. -* Enhancement: `ziti edge update edge-router` now supports either `--no-traversal` flag which will allow/disallow a given router from being used to traverse. -* Enhancement: `ziti fabric list routers` and `ziti edge list routers` will now display the noTraversal flag of associated routers. -* Feature: 1st Party Certificate Extension - -## 1st Party Certificate Extension - -Ziti Edge Client and Management API both support certificate extension for Ziti provisioned certificates. Before a -client certificate expires, the client can elect to generate a new client certificate that will extend its valid period -and allows the client to optionally utilize a new private key. - -Process Outline: - -1) The client enrolls, obtaining a client certificate that is signed by the Ziti Controller -2) The client authenticates -3) The client provides a CSR -4) The client receives a new public certificate -5) The client verifies with the controller the new public certificate has been obtained - -### Detailed Outline - -The client enrolls and authenticates with the controller as normal. If the client wishes to extend its client certificate, -it can request that at any time by doing: - -``` -POST /edge/{client|management}/current-identity/authenticators/{id}/extend - -{ - "clientCertCsr": "-----BEGIN NEW CERTIFICATE REQUEST-----\n..." -} - -``` - -If the authenticator specified by `{id}` is a certificate based authenticator and provisioned by Ziti, it will be allowed. -If not, 4xx HTTP status code errors will be returned outlining the issue. If ok, a 200 OK will be returned in the format of: - -``` -{ - "clientCert": "-----BEGIN CERTIFICATE-----\n....", - "ca": ""-----BEGIN CERTIFICATE-----\n...." -} -``` - -At this point the controller will have stored the new certificate, but it is not usable for authentication until the client -proves that is has properly stored the client certificate. This verification is done by sending the client certificate -back to the controller: - -``` -POST /edge/{client|management}/current-identity/authenticators{id}/extend-verify -{ - "clientCert": "-----BEGIN CERTIFICATE-----\n...." -} -``` - -On success, 200 OK is returned and the new client certificate should be used for all future authentication requests. - -# Release 0.24.12 - -* Enhancement: Allow xgress proxy configuration in router config to accept service id or service name -* Build: Docker build process fixes - -# Release 0.24.11 - -* Bug fix: Fix ziti CLI env. Config was getting set to current directory, instead of defaulting to under $HOME -* Enhancement: Go tunneler support for service-side resolution of SRV, MX, TXT records for wildcard domains - -# Release 0.24.10 - -* Bug fix: Fix goroutine leak in channel - * Regression introduced in v0.24.5 -* Bug fix: Deleted routers should now be forcefully disconnected on delete -* Bug fix: Circuit timeouts, and not just failures, should now also incur failure costs on the related terminator when dialing -* Bug fix: Entity count events and the summary REST service now distinguish between fabric and edge service and routers. The edge counts names are suffixed with '.edge' -* Enhancement: Circuit events of all types now include the full set of attributes -* Enhancement: The `ziti edge list summary` now shows entity counts in alphabetical order of the entity type -* Enhancement: `ziti edge update edge-router` now supports a `--cost` flag which will update a given routers associated cost. -* Enhancement: `ziti fabric list routers` and `ziti edge list routers` will now display the cost of associated routers. - -# Release 0.24.9 -* Enhancement: `ziti` now has subcommands under `create config` which will properly emit configuration files for - `controller`, `router edge` and `router fabric`. - -# Release 0.24.8 - -* Bug fix: Move control change presence handler notification out of bind handler -* Bug fix: Posture queries now have updatedAt values that increase on state change as well as posture check change -* Enhancement: xweb HTTP servers (edge, fabric REST APIs) now support compression requests from clients via `Accept-Encoding` headers (gzip, br, deflate) - -# Release 0.24.7 - -* Bug fix: bbolt deadlock that could happen if posture cache evaluation coincided with a bbolt mmap operation - * regression introduced in v0.22.1 -* Bug fix: metrics event filtering - * regression introduced in 0.24.5 with the metrics name change - -# Release 0.24.6 - -* Update bbolt library to v1.3.6 - -# Release 0.24.5 - -* Enhancement: Durable Eventual Events -* Enhancement: API Session/Service Policy Enforcer Metrics -* Enhancement: Support Controller Address Changes -* Enhancement: Control Channel Metrics Split -* Enhancement: Metrics Output Size Reduction -* Enhancement: Channel Library Updates - -## Durable Eventual Events - -The controller now supports internal events to delay the processing cost of operations that do not need to resolve -immediately, but must resolve at some point. Events in the controller may pile up at increased load time and that load -level can be seen in a new gauge metric `eventual.events`. - -- `eventual.events` - The count of outstanding eventual events - -## API Session/Service Policy Enforcer Metrics - -New metrics have been added to track internal processes of the controller that enforces API Sessions and Service -Policies. - -- `api.session.enforcer.run` - a timer metric of run time of the API Session enforcer -- `api.session.enforcer.delete` - a meter metric of the number of API Sessions deleted -- `service.policy.enforcer.run` - a timer metric of run time of the Service Policy enforcer -- `service.policy.enforcer.event` - a timer metric of the run time for discrete enforcer events -- `service.policy.enforcer.event.deletes` - a meter of the number of signaling delete events processed -- `service.policy.enforcer.run.deletes` - a meter of the number of actual session deletes processed - -## Support Controller Address Changes - -The Ziti controller now supports additional address fields which can be used to signal endpoint software and routers to -update their configured controller address. The settings are useful in scenarios where moving between IP/hostnames is -desired. Use of these settings has security concerns that must be met in order to maintain connectivity and trust -between endpoint software and routers. - -### Security Requirements - -These are true for all REST API and control channel addresses. - -1) The old IP/hostname and the new IP/hostname must be present on the certificate defined by the `cert` field before - starting the transition -2) Adding the new IP/hostname to the SANs of an existing controller will require the generating and signing of a new - certificate -3) The newly generated and signed certificate must still validate with the CAs provided to routers and endpoints -4) The old IP/hostname can only be removed after all in-use routers/endpoints have connected and upgraded addresses - -### Process Outline - -1) Generate new server certificates with additional SANs for the new IP/hostname - transitional server certificate -2) Update the controller configure to use the new transitional server certificate for the desired listeners ( - control/REST APIs) -3) Restart the controller -4) Upgrade all routers to v0.24.5 or later -5) Upgrade all SDK clients to versions that support controller address changes -6) Verify existing routers and REST API clients can still connect with the old IP/hostname -7) Define the new settings required for the REST APIs (`newAddress`) and/or control channel (`newListener`), see below -8) Restart the controller -9) Verify existing routers and REST API clients configuration files have updated -10) After all clients/routers have updated their addresses, transition the `newAddress` and `newListener` values to the - default `address` and `listener` fields. -11) Remove the `newAddress` and `newListener` fields. -12) Restart the controller -13) Optionally generate a new server certificate without the old IP/hostname SANs and verify clients/routers can connect - -Notes: - -- This process may take days, weeks, or months depending on the size of the nework and how often the router/clients are - run -- It is imperative that all clients/routers that will remain in use after the IP/hostname move connect at least once - after `newAddress` and `newListener` values are configured and in use -- Clients/routers that do not receive the new address will need to be manually reconfigured by finding their - configuration file and updating the controller address - -### Control Channel Setting - -The controller listener defined in the `ctrl` section now supports a `newListener` option which must be a supported -address format (generally in the form of `::`). - -Once `newListener` is set, the controller will start to send out the new listener address to connecting routers after -the controller is restarted. All security concerns listed above must be met or routers will not be able to connect to -the controller. - -``` -ctrl: - listener: tls:127.0.0.1:6262 - options: - # (optional) settings - # ... - - # A listener address which will be sent to connecting routers in order to change their configured controller - # address. If defined, routers will update address configuration to immediately use the new address for future - # connections. The value of newListener must be resolvable both via DNS and validate via certificates - #newListener: tls:localhost:6262 -``` - -### REST API Setting - -REST APIs addresses are defined in the `web` section of the controller configuration. The `web` sections -contains `bindPoint`s that define which network interfaces the REST API server will listen on via the -`interface` field. The external address used to access that `bindPoint` is defined by the `address` field. An -additional `newAddress` field can optionally be set. - -Once `newAddress` is set, the controller will start to send out the new address to all clients via the HTTP -header `ziti-ctrl-address`. The header will be present on all responses from the controller for the specific -`bindPoint`. All security concerns listed above must be met or client will not be able to connect to the controller. - -``` -web: - # name - required - # Provides a name for this listener, used for logging output. Not required to be unique, but is highly suggested. - - name: all-apis-localhost - # bindPoints - required - # One or more bind points are required. A bind point specifies an interface (interface:port string) that defines - # where on the host machine the webListener will listen and the address (host:port) that should be used to - # publicly address the webListener(i.e. mydomain.com, localhost, 127.0.0.1). This public address may be used for - # incoming address resolution as well as used in responses in the API. - bindPoints: - #interface - required - # A host:port string on which network interface to listen on. 0.0.0.0 will listen on all interfaces - - interface: 127.0.0.1:1280 - - # address - required - # The public address that external incoming requests will be able to resolve. Used in request processing and - # response content that requires full host:port/path addresses. - address: 127.0.0.1:1280 - - # newAddress - optional - # A host:port string which will be sent out as an HTTP header "ziti-new-address" if specified. If the header - # is present, clients should update location configuration to immediately use the new address for future - # connections. The value of newAddress must be resolvable both via DNS and validate via certificates - newAddress: localhost:1280 -``` - -## Control Channel Latency Metrics Changes - -The control channel metrics have been broken into two separate metrics. Previously the metric measured how long it took for the message to be enqueued, sent and a reply received. Now the time to write to wire has been broken out. - -* `ctrl.latency` - This now measures the time from wire send to response received -* `ctrl.queue_time` - This measure the time from when the send is requested to when it actually is written to the wire - -## Metrics Output Size Reduction - -If using the JSON metrics events output, the output has changed. - -A metrics entry which previously would have looked like: - -``` -{ - "metric": "ctrl.tx.bytesrate", - "metrics": { - "ctrl.tx.bytesrate.count": 222, - "ctrl.tx.bytesrate.m15_rate": 0.37625904063382576, - "ctrl.tx.bytesrate.m1_rate": 0.12238911649077193, - "ctrl.tx.bytesrate.m5_rate": 0.13784280219782497, - "ctrl.tx.bytesrate.mean_rate": 0.1373326200238093 - }, - "namespace": "metrics", - "source_entity_id": "z7ZmJux8a7", - "source_event_id": "7b77ac53-c017-409e-afcc-fd0e1878a301", - "source_id": "ctrl_client", - "timestamp": "2022-01-26T21:46:45.866133131Z" -} -``` - -will now look like: - -``` -{ - "metric": "ctrl.tx.bytesrate", - "metrics": { - "count": 222, - "m15_rate": 0.37625904063382576, - "m1_rate": 0.12238911649077193, - "m5_rate": 0.13784280219782497, - "mean_rate": 0.1373326200238093 - }, - "namespace": "metrics", - "source_entity_id": "z7ZmJux8a7", - "source_event_id": "7b77ac53-c017-409e-afcc-fd0e1878a301", - "source_id": "ctrl_client", - "timestamp": "2022-01-26T21:46:45.866133131Z", - "version" : 2 -} -``` - -Note that the metric keys no longer have the metric name as a prefix. Also, the emitted metric has a new `version` field which is set to 2. - -Metrics with a single key, which previously looked like: - -``` -{ - "metric": "xgress.acks.queue_size", - "metrics": { - "xgress.acks.queue_size": 0 - }, - "namespace": "metrics", - "source_event_id": "6eb30de2-55de-49d5-828f-4268a3707512", - "source_id": "z7ZmJux8a7", - "timestamp": "2022-01-26T22:06:33.242933687Z", - "version": 2 -} -``` - -now look like: - -``` -{ - "metric": "xgress.acks.queue_size", - "metrics": { - "value": 0 - }, - "namespace": "metrics", - "source_event_id": "6eb30de2-55de-49d5-828f-4268a3707512", - "source_id": "z7ZmJux8a7", - "timestamp": "2022-01-26T22:06:33.242933687Z", - "version": 2 -} -``` - -## Channel Library Updates - -The channel library, which is used by edge communications, control channel, links and management channel, has been refactored. It now does a better job handling canceled messaged through the send process. If a message send times out before it is sent, the message will now no longer be sent when it gets to the head of the queue. Channels can now be instrumented to allow better metrics gathering, as seen above the the split out control channel latency metrics. Channel internals have also been refactored so that initialization is better defined, leading to better concurrency characteristics. - -# Release 0.24.4 - -## What's New - -* Enhancement: Cache sessions for the router/tunneler, to minimize the creation of unnecessary sessions -* Enhancement: Add send timeouts for route messages -* Enhancement: Add write timeout configuration for control channel -* Enhancement: API Session and Session deletes are now separate and eventually consistent -* Enhancement: API Session synchronization with routers no longer blocks database transactions -* Bug fix: fix message priority sorting - -## Control Channel Timeouts - -The controller config file now allows setting a write timeout for control channel connections. If a control channel -write times out, because the connection is in a bad state or because a router is in a bad state, the control channel -will be closed. This will allow the router to reconnect. - -``` -ctrl: - listener: tls:127.0.0.1:6262 - options: - # Sets the control channel write timeout. A write timeout will close the control channel, so the router will reconnect - writeTimeout: 15s -``` - -# Release 0.24.3 - -## What's New - -* Enhancement: API Session delete events now include the related identity id -* Enhancement: controller and router start up messages now include the component id -* Enhancement: New metric `identity.refresh` which counts how often an identity should have to refresh the service list - because of a service, config or policy change -* Enhancement: Edge REST services will now set the content-length on response, which will prevent response from being - chunked -* Enhancement: Edge REST API calls will now show in metrics in the format of . -* Bug fix: fix controller panic during circuit creation if router is unexpectedly deleted during routing - -# Release 0.24.2 - -## What's New - -* Bug fix: link verification could panic if link was established before control was finished establishing -* Bug fix: When checking edge terminator validity in the router, check terminator id as well the address -* Bug fix: xweb uses idleTimeout correctly, was previously using writeTimeout instead -* Enhancement: Improve logging around links in routers. Ensure we close both channels when closing a split link -* Enhancement: Add support for inspect in `ziti fabric`. Works the same as `ziti-fabric inspect` - -# Release 0.24.1 - -## What's New - -* Bug Fix: Very first time using ziti cli to login with `ziti edge login` would panic -* Security: When using new fabric REST API in fabric only mode, certs weren't being properly checked. Regression exists - only in 0.24.0 - -# Release 0.24.0 - -## Breaking Changes - -* ziti-fabric-gw has been removed since the fabric now has its own REST API -* ziti-fabric-test is no longer being built by default and won't be included in future release bundles. - Use `go build --tags all ./...` to build it -* ziti-fabric has been deprecated. Most of its features are now available in the `ziti` CLI under `ziti fabric` - -## What's New - -* Feature: Fabric REST API -* Performance: Additional route selection work -* Bug Fix: Fix controller deadlock which can happen if a control channel is closed while controller is responding -* Bug fix: Fix panic for UDP-only tproxy intercepts - -## Fabric REST API - -The fabric now has a REST API in addition to the channel2 management API. To enable it, add the fabric binding to the -apis section off the xweb config, as follows: - -``` - apis: - # binding - required - # Specifies an API to bind to this webListener. Built-in APIs are - # - health-checks - - binding: fabric -``` - -If running without the edge, the fabric API uses client certificates for authorization, much like the existing channel2 -mgmt based API does. If running with the edge, the edge provides authentication/authorization for the fabric REST APIs. - -### Supported Operations - -These operations are supported in the REST API. The ziti CLI has been updated to use this in the new `ziti fabric` -sub-command. - -* Services: create/read/update/delete -* Routers: create/read/update/delete -* Terminators: create/read/update/delete -* Links: read/update -* Circuits: read/delete - -### Unsupported Operations - -Some operations from ziti-fabric aren't get supported: - -* Stream metrics/traces/circuits - * This feature may be re-implemented in terms of websockets, or may be left as-is, or may be dropped -* Inspect (get stackdumps) - * This will be ported to `ziti fabric` -* Decode trace files - * This may be ported to `ziti-ops` - -# Release 0.23.1 - -## What's New - -* Performance: Improve route selection cpu and memory use. -* Bug fix: Fix controller panic in routes.MapApiSessionToRestModel caused by missing return - -# Release 0.23.0 - -## What's New - -* Bug fix: Fix panic in router when router is shutdown before control channel is established -* Enhancement: Add source/target router ids on link metrics. -* Security: Fabric management channel wasn't properly validating certs against the server cert chain -* Security: Router link listeners weren't properly validating certs against the server cert chain -* Security: Link listeners now validate incoming links to ensure that the link was requested by the controller and the - correct router dialed -* Security: Don't allow link forwarding entries to be overriden, as link ids should be unique -* Security: Validate ctrl channel clients against controller cert chain in addition to checking cert fingerprint - -## Breaking Changes - -The link validation required a controller side and router side component. The controller will continue to work with -earlier routers, but the routers with version >= 0.23.0 will need a controller with version >= 0.23.0. - -## Link Metrics Router Ids - -The link router ids will now be included as tags on the metrics. - -``` -{ - "metric": "link.latency", - "metrics": { - "link.latency.count": 322, - "link.latency.max": 844083, - "link.latency.mean": 236462.8671875, - "link.latency.min": 100560, - "link.latency.p50": 212710.5, - "link.latency.p75": 260137.75, - "link.latency.p95": 491181.89999999997, - "link.latency.p99": 820171.6299999995, - "link.latency.p999": 844083, - "link.latency.p9999": 844083, - "link.latency.std_dev": 118676.24663550049, - "link.latency.variance": 14084051515.49014 - }, - "namespace": "metrics", - "source_entity_id": "lDWL", - "source_event_id": "52f9de3e-4293-4d4f-9dc8-5c4f40b04d12", - "source_id": "4ecTdw8lG6", - "tags": { - "sourceRouterId": "CorTdA8l7", - "targetRouterId": "4ecTdw8lG6" - }, - "timestamp": "2021-11-10T18:04:32.087107445Z" -} -``` - -Note that this information is injected into the metric in the controller. If the controller doesn't know about the link, -because of a controller restart, the information can't be added. - -# Release 0.22.11 - -## What's New - -* Feature: API Session Events - -## API Session Events - -API Session events can now be configured by adding `edge.apiSessions` under event subscriptions. The events may be of -type `created` and `deleted`. The event type can be filtered by adding an `include:` block, similar to edge sessions. - -The JSON output looks like: - -``` -{ - "namespace": "edge.apiSessions", - "event_type": "created", - "id": "ckvr2r4fs0001oigd6si4akc8", - "timestamp": "2021-11-08T14:45:45.785561479-05:00", - "token": "77cffde5-f68e-4ef0-bbb5-731db36145f5", - "identity_id": "76BB.shC0", - "ip_address": "127.0.0.1" -} -``` - -# Release 0.22.10 - -# What's New - -* Bug fix: address client certificate changes altered by library changes -* Bug fix: fixes a panic on session read in some situations -* Enhancement: Certificate Authentication Extension provides the ability to extend certificate expiration dates in the - Edge Client and Management APIs - -## Certificate Authentication Extension - -The Edge Client and Management APIs have had the following endpoint added: - -- `POST /current-identity/authenticators/{id}/extend` - -It is documented as: - -``` -Allows an identity to extend its certificate's expiration date by -using its current and valid client certificate to submit a CSR. This CSR may -be passed in using a new private key, thus allowing private key rotation. - -After completion any new connections must be made with certificates returned from a 200 OK -response. The previous client certificate is rendered invalid for use with the controller even if it -has not expired. - -This request must be made using the existing, valid, client certificate. -``` - -An example input is: - -``` -{ - "clientCertCsr": "......" -} -``` - -Output responses include: - -- `200 OK` w/ empty object payloads: `{}` -- `401 UNAUTHORIZED` w/ standard error messaging -- `400 BAD REQUESET` w/ standard error messaging for field errors or CSR processing errors - -# Release 0.22.9 - -# What's New - -* Build: This release adds an arm64 build and improved docker build process - -# Release 0.22.8 - -# What's New - -* Bug fix: Workaround bbolt bug where cursor next sometimes skip when current is deleted. Use skip instead of next. - Fixes orphan session issue. -* Bug fix: If read fails on reconnecting channel, close peer before trying to reconnect -* Bug fix: Don't log every UDP datagram at info level in tunneler -* Change: Build with -trimpath to aid in plugin compatibility - -# Release 0.22.7 - -# What's New - -* Bug fix: Router automatic certificate enrollments will no longer require a restart of the router -* Enhancement: foundation Identity implementations now support reloading of tls.Config certificates for CAs -* Enhancement: foundation Identity library brought more in-line with golang idioms -* Experimental: integration with PARSEC key service -* Bug fix: Fix controller panic when router/tunnel tries to host invalid service - -## PARSEC integration (experimental) - -Ziti can now use keys backed by PARSEC service for identity. see https://parallaxsecond.github.io/parsec-book/index.html - -example usage during enrollment (assuming `my-identity-key` exists in PARSEC service): - -``` -$ ziti-tunnel enroll -j my-identity.jwt --key parsec:my-identity-key -``` - -# Release 0.22.6 - -# What's New - -* Enhancement: Add terminator_id and version to service events. If a service event relates to a terminator, the - terminator_id will now be included. Service events now also have a version field, which is set to 2. -* Enhancement: Don't let identity/service/edge router role attributes start with a hashtag or at-symbol to prevent - confusion. -* Bug fix: Timeout remaining for onWake/onUnlock will properly report as non-zero after MFA submission -* Enhancement: traceroute support -* Enhancement: add initial support for UDP links - -## Traceroute - -The Ziti cli and Ziti Golang SDK now support traceroute style operations. In order for this to work the SDK and routers -must be at version 0.22.6 or greater. This is currently only supported in the Golang SDK. - -The SDK can perform a traceroute as follows: - -``` -conn, err := ctx.Dial(o.Args[0]) -result, err := conn.TraceRoute(hop, time.Second*5) -``` - -The result structure looks like: - -``` -type TraceRouteResult struct { - Hops uint32 - Time time.Duration - HopType string - HopId string -} -``` - -Increasing numbers of hops can be requested until the hops returned is greater than zero, indicating that additional -hops weren't available. This functionality is available in the Ziti CLI. - -``` -$ ziti edge traceroute simple -c ./simple-client.json - 1 xgress/edge 1ms - 2 forwarder[n4yChTL3Jy] 0s - 3 forwarder[Yv7BPW0kGR] 0s - 4 xgress/edge 1ms - 5 sdk/golang 0s - -plorenz@carrot:~/work/nf$ ziti edge traceroute simple -c ./simple-client.json - 1 xgress/edge 0s - 2 forwarder[n4yChTL3Jy] 0s - 3 forwarder[Yv7BPW0kGR] 1ms - 4 xgress/edge_transport 0s -``` - -# Release 0.22.5 - -## What's New - -* Update from Go 1.16 to Go 1.17 - -# Release 0.22.4 - -## What's New - -* Bug fix: Ziti CLI creating a CA now has the missing `--identity-name-format` / `-f` option -* Bug fix: Edge router/tunneler wasn't getting per-service precedence/cost defined on identity -* Cleanup: The HA terminator strategy has been removed. The implementation was incomplete on its own. Use health checks - instead of active/passive setups - -# Release 0.22.3 - -## What's New - -* Bug fix: Fix panic in listener close if the socket hadn't been initalized yet -* Bug fix: Fix panic in posture bulk create if mfa wasn't set -* Bug fix: Fix panic in circuit creation on race condition when circuits are add/removed concurrently - -# Release 0.22.2 - -## What's New - -* Bug fix: Upgrading a controller from 0.22.0 or earlier to 0.22.2 will no longer leave old sessions w/o identityId - properties. Workaround for previous versions is to use `ziti-controller delete-sessions` -* Bug fix: If a router/tunneler loses connectivity with the controller long enough for the api session to time out, the - router will now restablish any terminators for hosted services -* Enhancement: Add some short aliases for the CLI - * edge-router -> er - * service-policy -> sp - * edge-router-policy -> erp - * service-edge-router-policy -> serp -* Feature: Add GetServiceTerminators to Golang SDK ziti.Context -* Feature: Add GetSourceIdentifier to Golang SDK edge.ServiceConn - -# Release 0.22.1 - -## What's New - -* Bug fix: Fabric v0.16.93 fixes `xgress.GetCircuit` to provide a `ctrl not ready` error response when requests arrive - before the router is fully online. -* Bug fix: Ziti CLI will no longer truncate paths on logins with explicit URLs -* Bug fix: Ziti CLI will now correctly check the proper lengths of sha512 hashes in hex format -* Bug fix: MFA Posture Check timeout will no longer be half their set value -* Bug fix: MFA Posture Checks w/ a timeout configured to 0 will be treated as having no timeout (-1) instead of always - being timed out -* Bug fix: MFA Posture Checks will no longer cause an usually high frequency of session updates -* Bug fix: MFA Posture Checks during subsequent MFA submissions will no longer 401 -* Bug fix: Listing sessions via `GET /sessions` will no longer report an error in certain data states -* Feature: Posture responses now report services affected with timeout/state changes -* Feature: Ziti CLI `unwrap` command for identity json files will now default the output file names -* Feature: Ziti CLI improvements - * New interactive tutorial covering creating your first service. Run using: `ziti edge tutorial first-service` - * You can now delete multiple entities at once, by providing multiple ids. Ex: `ziti edge delete services one two` - or `ziti edge delete service one two` will both work. - * You can now delete multiple entities at once, by providing a filter. - Ex: `ziti edge delete services where 'name contains "foo"` - * Create and delete output now has additional context. -* Feature: Terminators can now be filtered by service and router name: - Ex: `ziti edge list terminators 'service.name = "echo"'` -* Feature: New event type `edge.entityCounts` - -## Entity Count Events - -The Ziti Controller can now generate events with a summary of how many of each entity type are currently in the data -store. It can be configured with an interval for how often the event will be generated. The default interval is five -minutes. - -``` -events: - jsonLogger: - subscriptions: - - type: edge.entityCounts - interval: 5m -``` - -Here is an example of the JSON output of the event: - -``` -{ - "namespace": "edge.entityCounts", - "timestamp": "2021-08-19T13:39:54.056181406-04:00", - "counts": { - "apiSessionCertificates": 0, - "apiSessions": 9, - "authenticators": 4, - "cas": 0, - "configTypes": 5, - "configs": 2, - "edgeRouterPolicies": 4, - "enrollments": 0, - "eventLogs": 0, - "geoRegions": 17, - "identities": 6, - "identityTypes": 4, - "mfas": 0, - "postureCheckTypes": 5, - "postureChecks": 0, - "routers": 2, - "serviceEdgeRouterPolicies": 2, - "servicePolicies": 5, - "services": 3, - "sessions": 0 - }, - "error": "" -} -``` - -# Release 0.22.0 - -## What's New - -* Refactor: Fabric Sessions renamed to Circuits (breaking change) -* Feature: Links will now wait for a timeout for retrying -* Bug fix: Sessions created on the controller when circuit creation fails are now cleaned up -* Feature: Enhanced `ziti` CLI login functionality (has breaking changes to CLI options) -* Feature: new `ziti edge list summary` command, which shows database entity counts -* Bug fix: ziti-fabric didn't always report an error to the OS when it had an error -* Refactor: All protobuf packages have been prefixed with `ziti.` to help prevent namespace clashes. Should not be a - breaking change. -* Feature: Selective debug logging by identity for path selection and circuit establishment - * `ziti edge trace identity ` will turn on debug logging for selecting paths and establishing circuits - * Addition context for these operations including circuitId, sessionid and apiSessionId should now be in log - messages regardless of whether tracing is enabled - * Tracing is enabled for a given duration, which defaults to 10 minutes - -## Breaking Changes - -Fabric sessions renamed to circuits. External integrators may be impacted by changes to events. See below for details. - -### Ziti CLI - -Commands under `ziti edge` now reserve the `-i` flag for specifying client identity. Any command line argumet which -previously had a `-i` short version now only has a long version. - -For consistency, policy roles parameters must all be specified in long form - -This includes the following flags: - -* ziti edge create edge-router-policy --identity-roles --edge-router-roles -* ziti edge update edge-router-policy --identity-roles --edge-router-roles -* ziti edge create service-policy --identity-roles --service-roles -* ziti edge update service-policy --identity-roles --service-roles -* ziti edge create service-edge-router-policy --service-roles --edge-router-roles -* ziti edge update service-edge-router-policy --service-roles --edge-router-roles -* ziti edge create posture-check mfa --ignore-legacy -* ziti edge update posture-check mfa --ignore-legacy -* ziti edge update authenticator updb --identity -* ziti egde update ca --identity-atributes (now -a) - -The `ziti edge` commands now store session credentials in a new location and new format. Existing sessions will be -ignored. - -The `ziti edge controller` command was previously deprecated and has now been removed. All commands that were previously -available under `ziti edge controller` are available under `ziti edge`. - -## Fabric Sessions renamed to Circuits - -Previously we had three separate entities named session: fabric sessions, edge sessions and edge API sessions. In order -to reduce confusion, fabric sessions have been renamed to circuits. This has the following impacts: - -* ziti-fabric CLI - * `list sessions` renamed to `list circuits` - * `remove session` renamed to `remove circuit` - * `stream sessions` renamed to `stream circuits` -* Config properties - * In the controller config, under `networks`, `createSessionRetries` is now `createCircuitRetries` - * In the router config, under xgress dialer/listener options, `getSessionTimeout` is now `getCircuitTimeout` - * In the router config, under xgress dialer/listener options, `sessionStartTimeout` is now `circuitStartTimeout` - * In the router, under `forwarder`, `idleSessionTimeout` is now `idleCircuitTimeout` - -In the context of the fabric there was an existing construct call `Circuit` which has now been renamed to `Path`. This -may be visible in a few `ziti-fabric` CLI outputs - -### Event changes - -Previously the fabric had session events. It now has circuit events instead. These events have the `fabric.circuits` -namespace. The `circuitUpdated` event type is now the `pathUpdated` event. - -``` -type CircuitEvent struct { - Namespace string `json:"namespace"` - EventType string `json:"event_type"` - CircuitId string `json:"circuit_id"` - Timestamp time.Time `json:"timestamp"` - ClientId string `json:"client_id"` - ServiceId string `json:"service_id"` - Path string `json:"circuit"` -} -``` - -Additionally the Usage events now have `circuit_id` instead of `session_id`. The usage events also have a new `version` -field, which is set to 2. - -# Pending Link Timeout - -Previously whenever a router connected we'd look for new links possiblities and create new links between routers where -any were missing. If lots of routers connected at the same time, we might create duplicate links because the links -hadn't been reported as established yet. Now we'll checking for links in Pending state, and if they haven't hit a -configurable timeout, we won't create another link. - -The new config property is `pendingLinkTimeoutSeconds` in the controller config file under `network`, and defaults to 10 -seconds. - -## Enhanced CLI Login Functionality - -### Server Trust - -#### Untrusted Servers - -If you don't provide a certificates file when logging in, the server's well known certificates will now be pulled from -the server and you will be prompted if you want to use them. If certs for the host have previously been retrieved they -will be used. Certs stored locally will be checked against the certs on the server when logging in. If a difference is -found, the user will be notified and asked if they want to update the local certificate cache. - -If you provide certificates during login, the server's certificates will not be checked or downloaded. Locally cached -certificates for that host will not be used. - -#### Trusted Servers - -If working with a server which is using certs that your OS already recognizes, nothing will change. No cert needs to be -provided and the server's well known certs will not be downloaded. - -### Identities - -The Ziti CLI now suports multiple identities. An identity can be specified using `--cli-identity` or `-i`. - -Example commands: - -``` -$ ziti edge login -i dev localhost:1280 -Enter username: admin -Enter password: -Token: 76ff81b4-b528-4e2c-ad73-dcb0a39b6489 -Saving identity 'dev' to ~/.config/ziti/ziti-cli.json - -$ ziti edge -i dev list services -id: -JucPW0kGR name: ssh encryption required: true terminator strategy: smartrouting role attributes: ["ssh"] -results: 1-1 of 1 -``` - -If no identity is specified, a default will be used. The default identity is `default`. - -#### Switching Default Identity - -The default identity can be changed with the `ziti edge use` command. - -The above example could also be accomplished as follows: - -``` -$ ziti edge use dev -Settting identity 'dev' as default in ~/.config/ziti/ziti-cli.json - -$ ziti edge login localhost:1280 -Enter username: admin -Enter password: -Token: e325d91c-a452-4454-a733-cfad88bfa356 -Saving identity 'dev' to ~/.config/ziti/ziti-cli.json - -$ ziti edge list services -id: -JucPW0kGR name: ssh encryption required: true terminator strategy: smartrouting role attributes: ["ssh"] -results: 1-1 of 1 - -$ ziti edge use default -Settting identity 'default' as default in ~/.config/ziti/ziti-cli.json -``` - -`ziti edge use` without an argument will list logins you have made. - -``` -$ ziti edge use -id: default | current: true | read-only: true | urL: https://localhost:1280/edge/management/v1 -id: cust1 | current: false | read-only: false | urL: https://customer1.com:443/edge/management/v1 -``` - -#### Logout - -You can now also clear locally stored credentials using `ziti edge logout` - -``` -$ ziti edge -i cust1 logout -Removing identity 'cust1' from ~/.config/ziti/ziti-cli.json -``` - -#### Read-Only Mode - -When logging in one can mark the identity as read-only. This is a client side enforced flag which will attempt to make -sure only read operations are performed by this session. - -``` -$ ziti edge login --read-only localhost:1280 -Enter username: admin -Enter password: -Token: 966192c6-fb7f-481e-8230-dcef157770ef -Saving identity 'default' to ~/.config/ziti/ziti-cli.json - -$ ziti edge list services -id: -JucPW0kGR name: ssh encryption required: true terminator strategy: smartrouting role attributes: ["ssh"] -results: 1-1 of 1 - -$ ziti edge create service test -error: this login is marked read-only, only GET operations are allowed -``` - -NOTE: This is not guaranteed to prevent database changes. It is meant to help prevent accidental changes, if the wrong -profile is accidentally used. Caution should always be exercised when working with sensitive data! - -#### Login via Token - -If you already have an API session token, you can use that to create a client identity using the new `--token` flag. -When using `--token` the saved identity will be marked as read-only unless `--read-only=false` is specified. This is -because if you only have a token and not full credentials, it's more likely that you're inspecting a system to which you -have limited privileges. - -``` -$ ziti edge login localhost:1280 --token c9f37575-f660-409b-b731-5a256d74a931 -NOTE: When using --token the saved identity will be marked as read-only unless --read-only=false is provided -Saving identity 'default' to ~/.config/ziti/ziti-cli.json -``` - -Using this option will still check the server certificates to see if they need to be downloaded and/or compare them with -locally cached certificates. - -# Release 0.21.0 - -## Semantic now Required for policies (BREAKING CHANGE) - -Previouxly semantic was optional when creating or updating policies (POST or PUT), defaulting to `AllOf` when not -specified. It is now required. - -## What's New - -* Bug fix: Using PUT for policies without including the semantic would cause them to be evaluated using the AllOf - semantic -* Bug fix: Additional concurrency fix in posture data -* Feature: Ziti CLI now supports a comprehensive set of `ca` and `cas` options -* Feature: `ziti ps` now supports `set-channel-log-level` and `clear-channel-log-level` operations -* Change: Previouxly semantic was optional when creating or updating policies (POST or PUT), defaulting to `AllOf` when - not specified. It is now required. - -# Release 0.20.14 - -## What's New - -* Bug fix: Posture timeouts (i.e. MFA timeouts) would not apply to the first session of an API session -* Bug fix: Fix panic during API Session deletion -* Bug fix: DNS entries in embedded DNS server in go tunneler apps were not being cleaned up -* Feature: Ziti CLI now supports attribute updates on MFA posture checks -* Feature: Posture queries now support `timeout` and `timeoutRemaining` - -# Release 0.20.13 - -## What's New - -* Bug fix: [edge#712](https://github.com/openziti/edge/issues/712) - * NF-INTERCEPT chain was getting deleted when any intercept was stopped, not when all intercepts were stopped - * IP address could get re-used across DNS entries. Added DNS cache flush on startup to avoid this - * IP address cleanup was broken as all services would see last assigned IP -* Bug fix: Introduce delay when closing xgress peer after receiving unroute if end of session not yet received -* Feature: Can now search relevant entities by role attributes - * Services, edge routers and identities can be search by role attribute. - Ex: `ziti edge list services 'anyOf(roleAttributes) = "one"'` - * Polices can be searched by roles. Ex: `ziti edge list service-policies 'anyOf(identityRoles) = "#all"'` - -# Release 0.20.12 - -## What's New - -* Bug fix: [edge#641](https://github.com/openziti/edge/issues/641)Management and Client API nested resources now - support `limit` and `offset` outside of `filter` as query params -* Feature: MFA Timeout Options - -## MFA Timeout Options - -The MFA posture check now supports three options: - -* `timeoutSeconds` - the number of seconds before an MFA TOTP will need to be provided before the posture check begins - to fail (optional) -* `promptOnWake` - reduces the current timeout to 5m (if not less than already) when an endpoint reports a "wake" - event (optional) -* `promptOnUnlock` - reduces the current timeout to 5m (if not less than already) when an endpoint reports an "unlock" - event (optional) -* `ignoreLegacyEndpoints` - forces all other options to be ignored for legacy clients that do not support event state ( - optional) - -Event states, `promptOnWake` and `promptOnUnlock` are only supported in Ziti C SDK v0.20.0 and later. Individual ZDE/ZME -clients may take time to update. If older endpoint are used with the new MFA options `ignoreLegacyEndpoints` allows -administrators to decide how those clients should be treated. If `ignoreLegacyEndpoints` is `true`, they will not be -subject to timeout or wake events. - -# Release 0.20.11 - -* Bug fix: CLI Admin create/update/delete for UPDB authenticators now function properly -* Maintenance: better logging [sdk-golang#161](https://github.com/openziti/sdk-golang/pull/161) - and [edge#700](https://github.com/openziti/edge/pull/700) -* Bug fix: [sdk-golang#162](https://github.com/openziti/sdk-golang/pull/162) fix race condition on close of ziti - connections - -# Release 0.20.10 - -## What's New - -* Bug fix: patch for process multi would clear information -* Bug fix: [ziti#420](https://github.com/openziti/ziti/issues/420) fix ziti-tunnel failover with multiple interfaces - when once becomes unavailable -* Bug fix: [edge#670](https://github.com/openziti/edge/issues/670) fix ziti-tunnel issue where address were left - assigned to loopback after clean shutdown -* Bug fix: race condition in edge session sync could cause router panic. Regression since 0.20.9 -* Bug fix: terminator updates and deletes from the combined router/tunneler weren't working -* Feature: Router health checks -* Feature: Controller health check - -## Router Health Checks - -Routers can now enable an HTTP health check endpoint. The health check is configured in the router config file with the -new `healthChecks` section. - -``` -healthChecks: - ctrlPingCheck: - # How often to ping the controller over the control channel. Defaults to 30 seconds - interval: 30s - # When to timeout the ping. Defaults to 15 seconds - timeout: 15s - # How long to wait before pinging the controller. Defaults to 15 seconds - initialDelay: 15s -``` - -The health check endpoint is configured via XWeb, same as in the controller. As section like the following can be added -to the router config to enable the endpoint. - -``` -web: - - name: health-check - bindPoints: - - interface: 127.0.0.1:8081 - address: 127.0.0.1:8081 - apis: - - binding: health-checks -``` - -The health check output will look like this: - -``` -$ curl -k https://localhost:8081/health-checks -{ - "data": { - "checks": [ - { - "healthy": true, - "id": "controllerPing", - "lastCheckDuration": "767.381µs", - "lastCheckTime": "2021-06-21T16:22:36-04:00" - } - ], - "healthy": true - }, - "meta": {} -} - -``` - -The endpoint will return a 200 if the health checks are passing and 503 if they are not. - -# Controller Health Check - -Routers can now enable an HTTP health check endpoint. The health check is configured in the router config file with the -new `healthChecks` section. - -``` -healthChecks: - boltCheck: - # How often to check the bolt db. Defaults to 30 seconds - interval: 30s - # When to timeout the bolt db check. Defaults to 15 seconds - timeout: 15s - # How long to wait before starting bolt db checks. Defaults to 15 seconds - initialDelay: 15s -``` - -The health check endpoint is configured via XWeb. In order to enable the health check endpoint, add it **first** to the -list of apis. - -``` - apis: - # binding - required - # Specifies an API to bind to this webListener. Built-in APIs are - # - edge-management - # - edge-client - # - fabric-management - - binding: health-checks - options: { } - - binding: edge-management - # options - variable optional/required - # This section is used to define values that are specified by the API they are associated with. - # These settings are per API. The example below is for the `edge-api` and contains both optional values and - # required values. - options: { } - - binding: edge-client - options: { } - -``` - -The health check output will look like this: - -``` -$ curl -k https://localhost:1280/health-checks -{ - "data": { - "checks": [ - { - "healthy": true, - "id": "bolt.read", - "lastCheckDuration": "27.46µs", - "lastCheckTime": "2021-06-21T17:32:31-04:00" - } - ], - "healthy": true - }, - "meta": {} -} - -``` - -# Release 0.20.9 - -## What's New - -* Bug fix: router session sync would fail if it took longer than a second -* Bug fix: API sessions created during session sync could get thrown out when session sync was finalized -* Bug fix: Update of identity defaultHostingCost and defaultHostingPrecedence didn't work -* Improvement: List identities is faster as it no longer always iterates through all api-sessions -* Improvement: API Session enforcer now batches deletes of session for better performance - -# Release 0.20.8 - -## What's New - -* 0.20.7 was missing the most up-to-date version of the openziti/edge library dependency - -# Release 0.20.7 - -## What's New - -* Xlink now supports to a boolean `split` option to enable/disable separated payload and ack channels. -* Router identity now propagated through the link establishment plumbing. Will facilitate - router-directed `transport.Configuration` profiles in a future release. -* Bug fix: tunneler identity appData wasn't propagated to tunneler/router -* Bug fix: API session updates were only being sent to one router (regression since 0.20.4) -* Bug fix: API session enforcer wasn't being started (regression since 0.20.0) -* Bug fix: Setting per identity service costs/precedences didn't work with PATCH - -### Split Xlink Payload/Ack Channels - -Split payload and ack channels are enabled by default, preserving the behavior of previous releases. To disable split -channels, merge the following stanza into your router configuration: - -``` -link: - dialers: - - binding: transport - split: false -``` - -# Release 0.20.6 - -## What's New - -* Bug fix: Revert defensive Edge Router disconnect protection in Edge - -# Release 0.20.5 - -## What's New - -* Bug fix: Fix panic on double chan close that can occur when edge routers disconnect/reconnect in rapid succession -* Bug fix: Fix defaults for enrollment durations when not specified (would default near 0 values) - -# Release 0.20.4 - -## What's New - -* Bug fix: Fix a deadlock that can occur if Edge Routers disconnect during session synchronization or update processes -* Bug fix: Fix URL for CAS create in Ziti CLI - -# Release 0.20.3 - -## What's New - -* Bug fix: Update of identity appData wasn't working -* Bug fix: Terminator updates failed if cost wasn't specified -* Bug fix: Control channel handler routines were exiting on error instead of just closing peer and continuing - -# Release 0.20.2 - -## What's New - -* ziti-router will now emit a stackdump before exiting when it receives a SIGQUIT -* ziti ps stack now takes a --stack-timeout and will quit after the specified timeout if the stack dump hasn't completed - yet -* ziti now supports posture check types of process multi -* Fixes a bug in Ziti Management API where posture checks of type process multi were missing their base entity - information (createdAt, updatedAt, etc.) - -# Release 0.20.1 - -## What's New - -* Fixes a bug in the GO sdk which could cause panic by return nil connection and nil error -* [ziti#170](https://github.com/openziti/ziti/issues/170) Fixes the service poll refresh default for ziti-tunnel host - mode -* Fixes a deadlock in control channel reconnect logic triggerable when network path to controller is unreliable - -# Release 0.20.0 - -## What's New +# Older Changelogs -* Fix bug in router/tunneler where only first 10 services would get picked up for intercepting/hosting -* Fix bug in router/tunneler where we'd process services multiple times on service add/remove/update -* Historical Changelog Split -* Edge Management REST API Transit Router Deprecation -* Edge REST API Split & Configuration Changes - -### Historical Changelog Split - -Changelogs for previous minor versions are now split into their own files under `/changelogs`. - -### Edge Management REST API Transit Router Deprecation - -The endpoint `/transit-routers` is now `/routers`. Use of the former name is considered deprecated. This endpoint only -affects the new Edge Management API. - -### Edge REST API Split - -The Edge REST API has now been split into two APIs: The Edge Client API and the Edge Management API. There are now two -Open API 2.0 specifications present in the `edge` repository under `/specs/client.yml` -and `/specs/management.yml`. These two files are generated (see the scripts in `/scripts/`) from decomposed YAML source -files present in `/specs/source`. - -The APIs are now hosted on separate URL paths: - -- Client API: `/edge/client/v1` -- Management API: `/edge/management/v1` - -Legacy path support is present for the Client API only. The Management API does not support legacy URL paths. The Client -API Legacy paths that are supported are as follows: - -- No Prefix: `/*` -- Edge Prefix: `/edge/v1/*` - -This support is only expected to last until all Ziti SDKs move to using the new prefixed paths and versions that do not -reach the end of their lifecycle. After that time, support will be removed. It is highly -suggested that URL path prefixes be updated or dynamically looked up via the `/version` endpoint (see below) - -#### Client and Management API Capabilities - -The Client API represents only functionality required by and endpoint to connected to and use services. This API -services Ziti SDKs. - -The Management API represents all administrative configuration capabilities. The Management API is meant to be used by -the Ziti Admin Console (ZAC) or other administrative integrations. - -*Client API Endpoints* - -- `/edge/client/v1/` -- `/edge/client/v1/.well-known/est/cacerts` -- `/edge/client/v1/authenticate` -- `/edge/client/v1/authenticate/mfa` -- `/edge/client/v1/current-api-session` -- `/edge/client/v1/current-api-session/certificates` -- `/edge/client/v1/current-api-session/certificates/{id}` -- `/edge/client/v1/current-api-session/service-updates` -- `/edge/client/v1/current-identity` -- `/edge/client/v1/current-identity/authenticators` -- `/edge/client/v1/current-identity/authenticators/{id}` -- `/edge/client/v1/current-identity/edge-routers` -- `/edge/client/v1/current-identity/mfa` -- `/edge/client/v1/current-identity/mfa/qr-code` -- `/edge/client/v1/current-identity/mfa/verify` -- `/edge/client/v1/current-identity/mfa/recovery-codes` -- `/edge/client/v1/enroll` -- `/edge/client/v1/enroll/ca` -- `/edge/client/v1/enroll/ott` -- `/edge/client/v1/enroll/ottca` -- `/edge/client/v1/enroll/updb` -- `/edge/client/v1/enroll/erott` -- `/edge/client/v1/enroll/extend/router` -- `/edge/client/v1/posture-response` -- `/edge/client/v1/posture-response-bulk` -- `/edge/client/v1/protocols` -- `/edge/client/v1/services` -- `/edge/client/v1/services/{id}` -- `/edge/client/v1/services/{id}/terminators` -- `/edge/client/v1/sessions` -- `/edge/client/v1/sessions/{id}` -- `/edge/client/v1/specs` -- `/edge/client/v1/specs/{id}` -- `/edge/client/v1/specs/{id}/spec` -- `/edge/client/v1/version` - -*Management API Endpoints* - -- `/edge/management/v1/` -- `/edge/management/v1/api-sessions` -- `/edge/management/v1/api-sessions/{id}` -- `/edge/management/v1/authenticate` -- `/edge/management/v1/authenticate/mfa` -- `/edge/management/v1/authenticators` -- `/edge/management/v1/authenticators/{id}` -- `/edge/management/v1/cas` -- `/edge/management/v1/cas/{id}` -- `/edge/management/v1/cas/{id}/jwt` -- `/edge/management/v1/cas/{id}/verify` -- `/edge/management/v1/config-types` -- `/edge/management/v1/config-types/{id}` -- `/edge/management/v1/config-types/{id}/configs` -- `/edge/management/v1/configs` -- `/edge/management/v1/configs/{id}` -- `/edge/management/v1/current-api-session` -- `/edge/management/v1/current-identity` -- `/edge/management/v1/current-identity/authenticators` -- `/edge/management/v1/current-identity/authenticators/{id}` -- `/edge/management/v1/current-identity/mfa` -- `/edge/management/v1/current-identity/mfa/qr-code` -- `/edge/management/v1/current-identity/mfa/verify` -- `/edge/management/v1/current-identity/mfa/recovery-codes` -- `/edge/management/v1/database/snapshot` -- `/edge/management/v1/database/check-data-integrity` -- `/edge/management/v1/database/fix-data-integrity` -- `/edge/management/v1/database/data-integrity-results` -- `/edge/management/v1/edge-router-role-attributes` -- `/edge/management/v1/edge-routers` -- `/edge/management/v1/edge-routers/{id}` -- `/edge/management/v1/edge-routers/{id}/edge-router-policies` -- `/edge/management/v1/edge-routers/{id}/identities` -- `/edge/management/v1/edge-routers/{id}/service-edge-router-policies` -- `/edge/management/v1/edge-routers/{id}/services` -- `/edge/management/v1/edge-router-policies` -- `/edge/management/v1/edge-router-policies/{id}` -- `/edge/management/v1/edge-router-policies/{id}/edge-routers` -- `/edge/management/v1/edge-router-policies/{id}/identities` -- `/edge/management/v1/enrollments` -- `/edge/management/v1/enrollments/{id}` -- `/edge/management/v1/identities` -- `/edge/management/v1/identities/{id}` -- `/edge/management/v1/identities/{id}/edge-router-policies` -- `/edge/management/v1/identities/{id}/service-configs` -- `/edge/management/v1/identities/{id}/service-policies` -- `/edge/management/v1/identities/{id}/edge-routers` -- `/edge/management/v1/identities/{id}/services` -- `/edge/management/v1/identities/{id}/policy-advice/{serviceId}` -- `/edge/management/v1/identities/{id}/posture-data` -- `/edge/management/v1/identities/{id}/failed-service-requests` -- `/edge/management/v1/identities/{id}/mfa` -- `/edge/management/v1/identity-role-attributes` -- `/edge/management/v1/identity-types` -- `/edge/management/v1/identity-types/{id}` -- `/edge/management/v1/posture-checks` -- `/edge/management/v1/posture-checks/{id}` -- `/edge/management/v1/posture-check-types` -- `/edge/management/v1/posture-check-types/{id}` -- `/edge/management/v1/service-edge-router-policies` -- `/edge/management/v1/service-edge-router-policies/{id}` -- `/edge/management/v1/service-edge-router-policies/{id}/edge-routers` -- `/edge/management/v1/service-edge-router-policies/{id}/services` -- `/edge/management/v1/service-role-attributes` -- `/edge/management/v1/service-policies` -- `/edge/management/v1/service-policies/{id}` -- `/edge/management/v1/service-policies/{id}/identities` -- `/edge/management/v1/service-policies/{id}/services` -- `/edge/management/v1/service-policies/{id}/posture-checks` -- `/edge/management/v1/services` -- `/edge/management/v1/services/{id}` -- `/edge/management/v1/services/{id}/configs` -- `/edge/management/v1/services/{id}/service-edge-router-policies` -- `/edge/management/v1/services/{id}/service-policies` -- `/edge/management/v1/services/{id}/identities` -- `/edge/management/v1/services/{id}/edge-routers` -- `/edge/management/v1/services/{id}/terminators` -- `/edge/management/v1/sessions` -- `/edge/management/v1/sessions/{id}` -- `/edge/management/v1/sessions/{id}/route-path` -- `/edge/management/v1/specs` -- `/edge/management/v1/specs/{id}` -- `/edge/management/v1/specs/{id}/spec` -- `/edge/management/v1/summary` -- `/edge/management/v1/terminators` -- `/edge/management/v1/terminators/{id}` -- `/edge/management/v1/routers` -- `/edge/management/v1/transit-routers` -- `/edge/management/v1/routers/{id}` -- `/edge/management/v1/transit-routers/{id}` -- `/edge/management/v1/version` - -#### XWeb Support & Configuration Changes - -The underlying framework used to host the Edge REST API has been moved into a new library that can be found in -the `fabric` repository under the module name `xweb`. XWeb allows arbitrary APIs and website capabilities to be hosted -on one or more http servers bound to any number of network interfaces and ports. - -The main result of this is that the Edge Client and Management APIs can be hosted on separate ports or even on separate -network interfaces if desired. This allows for configurations where the Edge Management API is not accessible outside of -localhost or is only presented to network interfaces that are inwardly facing. - -The introduction of XWeb has necessitated changes to the controller configuration. For a full documented example see the -file `/etc/ctrl.with.edge.yml` in this repository. - -##### Controller Configuration: Edge Section - -The Ziti Controller configuration `edge` YAML section remains as a shared location for cross-API settings. It however, -does not include HTTP settings which are now configured in the `web` section. - -Additionally, all duration configuration values must be specified in `` durations. For example - -- "5m" for five minutes -- "100s" for one hundred seconds - -``` -# By having an 'edge' section defined, the ziti-controller will attempt to parse the edge configuration. Removing this -# section, commenting out, or altering the name of the section will cause the edge to not run. -edge: - # This section represents the configuration of the Edge API that is served over HTTPS - api: - #(optional, default 90s) Alters how frequently heartbeat and last activity values are persisted - # activityUpdateInterval: 90s - #(optional, default 250) The number of API Sessions updated for last activity per transaction - # activityUpdateBatchSize: 250 - # sessionTimeout - optional, default 10m - # The number of minutes before an Edge API session will timeout. Timeouts are reset by - # API requests and connections that are maintained to Edge Routers - sessionTimeout: 30m - # address - required - # The default address (host:port) to use for enrollment for the Client API. This value must match one of the addresses - # defined in this webListener's bindPoints. - address: 127.0.0.1:1280 - # enrollment - required - # A section containing settings pertaining to enrollment. - enrollment: - # signingCert - required - # A Ziti Identity configuration section that specifically makes use of the cert and key fields to define - # a signing certificate from the PKI that the Ziti environment is using to sign certificates. The signingCert.cert - # will be added to the /.well-known CA store that is used to bootstrap trust with the Ziti Controller. - signingCert: - cert: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/certs/intermediate.cert.pem - key: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/private/intermediate.key.decrypted.pem - # edgeIdentity - optional - # A section for identity enrollment specific settings - edgeIdentity: - # durationMinutes - optional, default 5m - # The length of time that a Ziti Edge Identity enrollment should remain valid. After - # this duration, the enrollment will expire and not longer be usable. - duration: 5m - # edgeRouter - Optional - # A section for edge router enrollment specific settings. - edgeRouter: - # durationMinutes - optional, default 5m - # The length of time that a Ziti Edge Router enrollment should remain valid. After - # this duration, the enrollment will expire and not longer be usable. - duration: 5m - -``` - -##### Controller Configuration: Web Section - -The `web` section now allows Ziti APIs to be configured on various network interfaces and ports according to deployment -requirements. The `web` section is an array of configuration that defines `WebListener`s. Each `WebListener` has its own -HTTP configuration, `BindPoint`s, identity override, and `API`s which are referenced by `binding` name. - -Each `WebListener` maps to at least one HTTP server that will be bound on at least one `BindPoint` -(network interface/port combination and external address) and will host one or more `API`s defined in the `api` -section. `API`s are configured by `binding` name. The following `binding` names are currently supported: - -- Edge Client API: `edge-client` -- Edge Management API: `edge-management` - -An example `web` section that places both the Edge Client and Management APIs on the same -`BindPoint`s would be: - -``` -# web -# Defines webListeners that will be hosted by the controller. Each webListener can host many APIs and be bound to many -# bind points. -web: - # name - required - # Provides a name for this listener, used for logging output. Not required to be unique, but is highly suggested. - - name: all-apis-localhost - # bindPoints - required - # One or more bind points are required. A bind point specifies an interface (interface:port string) that defines - # where on the host machine the webListener will listen and the address (host:port) that should be used to - # publicly address the webListener(i.e. my-domain.com, localhost, 127.0.0.1). This public address may be used for - # incoming address resolution as well as used in responses in the API. - bindPoints: - #interface - required - # A host:port string on which network interface to listen on. 0.0.0.0 will listen on all interfaces - - interface: 127.0.0.1:1280 - # address - required - # The public address that external incoming requests will be able to resolve. Used in request processing and - # response content that requires full host:port/path addresses. - address: 127.0.0.1:1280 - # identity - optional - # Allows the webListener to have a specific identity instead of defaulting to the root `identity` section. - # identity: - # cert: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/certs/ctrl-client.cert.pem - # server_cert: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/certs/ctrl-server.cert.pem - # key: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/private/ctrl.key.pem - # ca: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/certs/ca-chain.cert.pem - # options - optional - # Allows the specification of webListener level options - mainly dealing with HTTP/TLS settings. These options are - # used for all http servers started by the current webListener. - options: - # idleTimeoutMs - optional, default 5000ms - # The maximum amount of idle time in milliseconds allowed for pipelined HTTP requests. Setting this too high - # can cause resources on the host to be consumed as clients remain connected and idle. Lowering this value - # will cause clients to reconnect on subsequent HTTPs requests. - idleTimeout: 5000ms #http timeouts, new - # readTimeoutMs - optional, default 5000ms - # The maximum amount of time in milliseconds http servers will wait to read the first incoming requests. A higher - # value risks consuming resources on the host with clients that are acting bad faith or suffering from high latency - # or packet loss. A lower value can risk losing connections to high latency/packet loss clients. - readTimeout: 5000ms - # writeTimeoutMs - optional, default 10000ms - # The total maximum time in milliseconds that the http server will wait for a single requests to be received and - # responded too. A higher value can allow long running requests to consume resources on the host. A lower value - # can risk ending requests before the server has a chance to respond. - writeTimeout: 100000ms - # minTLSVersion - optional, default TSL1.2 - # The minimum version of TSL to support - minTLSVersion: TLS1.2 - # maxTLSVersion - optional, default TSL1.3 - # The maximum version of TSL to support - maxTLSVersion: TLS1.3 - # apis - required - # Allows one or more APIs to be bound to this webListener - apis: - # binding - required - # Specifies an API to bind to this webListener. Built-in APIs are - # - edge-management - # - edge-client - # - fabric-management - - binding: edge-management - # options - variable optional/required - # This section is used to define values that are specified by the API they are associated with. - # These settings are per API. The example below is for the `edge-api` and contains both optional values and - # required values. - options: { } - - binding: edge-client - options: { } - - name: test-remove-me - bindPoints: - - interface: 127.0.0.1:1281 - address: 127.0.0.1:1281 - options: { } - apis: - - binding: edge-management - options: { } - - binding: edge-client - options: { } -``` - -All optional values are defaulted. The smallest configuration possible that places the Edge Client and Managements APIs -on the same `BindPoint` would be: - -``` -web: - - name: client-management-localhost - bindPoints: - - interface: 127.0.0.1:1280 - address: 127.0.0.1:1280 - options: { } - apis: - - binding: edge-management - options: { } - - binding: edge-client - options: { } -``` - -The following examples places the Management API on localhost and the Client API on all available interface and -advertised as `client.api.ziti.dev:1280`: - -``` -web: - - name: client-all-interfaces - bindPoints: - - interface: 0.0.0.0:1280 - address: client.api.ziti.dev:1280 - options: { } - apis: - - binding: edge-client - options: { } - - name: management-local-only - bindPoints: - - interface: 127.0.0.1:1234 - address: 127.0.0.1:1234 - options: { } - apis: - - binding: edge-management - options: { } -``` - -#### Version Endpoint Updates - -All Edge APIs support the `/version` endpoint and report all the APIs supported by the controller. Each API now has -a `binding` (string name) which is a global handle for that API's capabilities. See the current list below - -- Client API: `edge-client`, `edge` -- Management API: `edge-management` - -Note: `edge` is an alias of `edge-client` for the `/version` endpoint only. It is considered deprecated. - -These `bind names` can be used to parse the information returned by the `/version` endpoint to obtain the most correct -URL path for each API and version present. At a future date, other APIs with new `binding`s -(e.g. 'fabric-management` or 'fabric') or new versions may be added to this endpoint. - -Versions prior to 0.20 of the Edge Controller reported the following: - -``` -{ - "data": { - "apiVersions": { - "edge": { - "v1": { - "path": "/edge/v1" - } - } - }, - "buildDate": "2020-08-11 19:48:57", - "revision": "e4ae43213a8d", - "runtimeVersion": "go1.14.7", - "version": "v0.16.0" - }, - "meta": {} -} -``` - -Note: `/edge/v1` is deprecated - -Version 0.20 and later report: - -``` -{ - "data": { - "apiVersions": { - "edge": { - "v1": { - "apiBaseUrls": [ - "https://127.0.0.1:1280/edge/client/v1", - "https://127.0.0.1:1281/edge/client/v1" - ], - "path": "/edge/client/v1" - } - }, - "edge-client": { - "v1": { - "apiBaseUrls": [ - "https://127.0.0.1:1280/edge/client/v1", - "https://127.0.0.1:1281/edge/client/v1" - ], - "path": "/edge/client/v1" - } - }, - "edge-management": { - "v1": { - "apiBaseUrls": [ - "https://127.0.0.1:1280/edge/management/v1", - "https://127.0.0.1:1281/edge/management/v1" - ], - "path": "/edge/management/v1" - } - } - }, - "buildDate": "2020-01-01 01:01:01", - "revision": "local", - "runtimeVersion": "go1.16.2", - "version": "v0.0.0" - }, - "meta": {} -}. - -``` +Changelogs for previous releases can be found in [changelogs](./changelogs). From 27f01b1e4313951aaa4c0c6cb7a7e60b76e3d53f Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Tue, 18 Apr 2023 10:46:11 -0400 Subject: [PATCH 17/51] move to 0.28 per paul's request --- version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version b/version index 5a9e6bda2..4950f07e4 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.27 +0.28 From f59676fbef5f759ac2e4beb1c8d55f8a47b8a721 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Tue, 18 Apr 2023 10:46:48 -0400 Subject: [PATCH 18/51] update changelog to 0.28 too --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e485ffb16..c1f5a0331 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Release 0.27.10 +# Release 0.28.0 ## What's New From 2531994e75dd106d9b536aed8a0f6988998dc7ef Mon Sep 17 00:00:00 2001 From: Geoff Berl <95235264+gberl002@users.noreply.github.com> Date: Wed, 19 Apr 2023 12:35:19 -0400 Subject: [PATCH 19/51] Adding ability to set ZITI_PWD in docker (#1092) Adding ability to set ZITI_PWD in docker Fixing password re-generation on container down and up cycles Closes #1013 Signed-off-by: gberl002 --- CHANGELOG.md | 2 ++ quickstart/docker/.env | 3 +++ quickstart/docker/docker-compose.yml | 1 + quickstart/docker/image/run-controller.sh | 7 +++++-- quickstart/docker/simplified-docker-compose.yml | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5377f7d7..779bca544 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## What's New +* github.com/openziti/ziti: [v0.27.9 -> v0.27.10](https://github.com/openziti/ziti/compare/v0.27.9...v0.27.10) + * [Issue #1013](https://github.com/openziti/ziti/issues/1013) - Stop regenerating a new password with each container 'down/up' cycle * Added AMQP event writter for events # Release 0.27.9 diff --git a/quickstart/docker/.env b/quickstart/docker/.env index af21b1eff..577d31807 100644 --- a/quickstart/docker/.env +++ b/quickstart/docker/.env @@ -12,6 +12,9 @@ ZITI_CONTROLLER_RAWNAME=ziti-controller #ZITI_CONTROLLER_HOSTNAME=advertised.address #ZITI_CTRL_PORT=8440 +# Leave password blank to have a unique value generated or set the password explicitly +ZITI_PWD= + ZITI_EDGE_CONTROLLER_RAWNAME=ziti-edge-controller #ZITI_EDGE_CONTROLLER_HOSTNAME=advertised.address #ZITI_EDGE_CONTROLLER_PORT=8441 diff --git a/quickstart/docker/docker-compose.yml b/quickstart/docker/docker-compose.yml index 7cff37dce..cdd600793 100644 --- a/quickstart/docker/docker-compose.yml +++ b/quickstart/docker/docker-compose.yml @@ -10,6 +10,7 @@ services: environment: - ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION=${ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION} - ZITI_EDGE_ROUTER_ENROLLMENT_DURATION=${ZITI_EDGE_ROUTER_ENROLLMENT_DURATION} + - ZITI_PWD=${ZITI_PWD} networks: zitiblue: aliases: diff --git a/quickstart/docker/image/run-controller.sh b/quickstart/docker/image/run-controller.sh index 21a0c34b3..93ec7bd60 100755 --- a/quickstart/docker/image/run-controller.sh +++ b/quickstart/docker/image/run-controller.sh @@ -7,8 +7,11 @@ export ZITI_EDGE_CONTROLLER_RAWNAME=ziti-edge-controller . "${ZITI_SCRIPTS}/ziti-cli-functions.sh" -generateEnvFile -. ${ZITI_HOME}/ziti.env +# access-control.init is created by ziti-controller-init-container after initial controller startup +if [ ! -f "${ZITI_HOME}/access-control.init" ]; then + generateEnvFile +fi +. "${ZITI_HOME}/ziti.env" # create pki createPki diff --git a/quickstart/docker/simplified-docker-compose.yml b/quickstart/docker/simplified-docker-compose.yml index 407beb3eb..bc9d20e13 100644 --- a/quickstart/docker/simplified-docker-compose.yml +++ b/quickstart/docker/simplified-docker-compose.yml @@ -10,6 +10,7 @@ services: environment: - ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION=${ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION} - ZITI_EDGE_ROUTER_ENROLLMENT_DURATION=${ZITI_EDGE_ROUTER_ENROLLMENT_DURATION} + - ZITI_PWD=${ZITI_PWD} networks: zitiblue: aliases: From 6b03fe095abc77af9a1eedd6b2264c09d732e01d Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Sat, 15 Apr 2023 14:16:45 -0400 Subject: [PATCH 20/51] tweak build workflow for forks (resolves #1087) --- .github/workflows/main.yml | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3e81410c4..6b2ca6d43 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,6 +29,7 @@ env: jobs: mac-os-build: name: Build Mac OS binaries + if: github.repository_owner == 'openziti' runs-on: macos-11 steps: - name: Git Checkout @@ -59,6 +60,7 @@ jobs: windows-build: name: Build Windows binaries + if: github.repository_owner == 'openziti' runs-on: windows-2019 steps: - name: Git Checkout @@ -155,6 +157,11 @@ jobs: publish: name: Publish Binaries + if: | + always() + && (needs.mac-os-build.result == 'success' || needs.mac-os-build.result == 'skipped') + && (needs.windows-build.result == 'success' || needs.windows-build.result == 'skipped') + && (needs.fablab-smoketest.result == 'success' || needs.fablab-smoketest.result == 'skipped') runs-on: ubuntu-20.04 needs: [ mac-os-build, windows-build, fablab-smoketest ] outputs: @@ -202,19 +209,21 @@ jobs: retention-days: 5 - name: Download darwin release artifact + if: needs.mac-os-build.result == 'success' uses: actions/download-artifact@v3 with: name: darwin-release-${{ github.run_id }} path: release/ - name: Download windows release artifact + if: needs.windows-build.result == 'success' uses: actions/download-artifact@v3 with: name: windows-release-${{ github.run_id }} path: release/ - name: Install Jfrog CLI - uses: jfrog/setup-jfrog-cli@v2 + uses: jfrog/setup-jfrog-cli@v3 with: version: 1.51.1 @@ -271,14 +280,20 @@ jobs: needs: publish name: Call the On-Demand Smoketest Workflow # not applicable to forks - if: github.repository_owner == 'openziti' + if: | + always() + && needs.publish.result == 'success' + && github.repository_owner == 'openziti' uses: ./.github/workflows/jenkins-smoketest.yml secrets: inherit with: ziti-version: ${{ needs.publish.outputs.ZITI_VERSION }} call-publish-prerelease-docker-images: - if: github.ref == 'refs/heads/release-next' + if: | + always() + && needs.publish.result == 'success' + && github.ref == 'refs/heads/release-next' name: Publish Pre-Release Docker Images needs: publish uses: ./.github/workflows/publish-docker-images.yml @@ -287,7 +302,10 @@ jobs: ziti-version: release-next call-publish-release-docker-images: - if: github.ref == 'refs/heads/main' + if: | + always() + && needs.publish.result == 'success' + && github.ref == 'refs/heads/main' name: Publish Release Docker Images needs: publish uses: ./.github/workflows/publish-docker-images.yml From e6ec433544a6c95f5536365e0bac7006ec3c7618 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Fri, 21 Apr 2023 11:25:46 -0400 Subject: [PATCH 21/51] allow forks to opt-out of Windows and macOS builds --- .github/workflows/main.yml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6b2ca6d43..d52c653af 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,7 +29,8 @@ env: jobs: mac-os-build: name: Build Mac OS binaries - if: github.repository_owner == 'openziti' + # allow fors to opt-out of time-consuming macOS builds + if: vars.ZITI_SKIP_MACOS_BUILD != 'true' runs-on: macos-11 steps: - name: Git Checkout @@ -60,7 +61,8 @@ jobs: windows-build: name: Build Windows binaries - if: github.repository_owner == 'openziti' + # allow fors to opt-out of time-consuming Windows builds + if: vars.ZITI_SKIP_WINDOWS_BUILD != 'true' runs-on: windows-2019 steps: - name: Git Checkout @@ -92,6 +94,7 @@ jobs: fablab-smoketest: name: Fablab Smoketest + # not applicable to forks if: github.repository_owner == 'openziti' runs-on: ubuntu-20.04 steps: @@ -157,6 +160,8 @@ jobs: publish: name: Publish Binaries + # - always() allows evaluating further conditional expressions even if + # needed jobs were skipped if: | always() && (needs.mac-os-build.result == 'success' || needs.mac-os-build.result == 'skipped') @@ -280,16 +285,15 @@ jobs: needs: publish name: Call the On-Demand Smoketest Workflow # not applicable to forks - if: | - always() - && needs.publish.result == 'success' - && github.repository_owner == 'openziti' + if: github.repository_owner == 'openziti' uses: ./.github/workflows/jenkins-smoketest.yml secrets: inherit with: ziti-version: ${{ needs.publish.outputs.ZITI_VERSION }} call-publish-prerelease-docker-images: + # always() re-enables evaluating conditionals in forks even if Windows or + # macOS builds were skipped if: | always() && needs.publish.result == 'success' @@ -302,6 +306,8 @@ jobs: ziti-version: release-next call-publish-release-docker-images: + # always() re-enables evaluating conditionals in forks even if Windows or + # macOS builds were skipped if: | always() && needs.publish.result == 'success' From 203da3461db663d177d5e7a7df3b615a079ac70e Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Fri, 21 Apr 2023 16:29:44 -0400 Subject: [PATCH 22/51] get Docker login name from var or secret --- .github/workflows/publish-docker-images.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-docker-images.yml b/.github/workflows/publish-docker-images.yml index 1e94d0895..fc9fce4c2 100644 --- a/.github/workflows/publish-docker-images.yml +++ b/.github/workflows/publish-docker-images.yml @@ -39,7 +39,9 @@ jobs: - name: Login to Docker Hub uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKER_HUB_API_USER }} + # it is preferable to obtain the username from a var so that + # recurrences of the same string are not masked in CI output + username: ${{ vars.DOCKER_HUB_API_USER || secrets.DOCKER_HUB_API_USER }} password: ${{ secrets.DOCKER_HUB_API_TOKEN }} - name: Set Up Container Image Tags for Base CLI Container From 675df168742823d7a25aa57ff9ba165dd20f0767 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Sun, 16 Apr 2023 10:09:52 -0400 Subject: [PATCH 23/51] install utilities in cli container image --- docker-images/ziti-cli/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-images/ziti-cli/Dockerfile b/docker-images/ziti-cli/Dockerfile index d33bb7ca5..125fb3628 100644 --- a/docker-images/ziti-cli/Dockerfile +++ b/docker-images/ziti-cli/Dockerfile @@ -28,7 +28,7 @@ LABEL name="openziti/ziti-cli" \ USER root ### install packages -RUN INSTALL_PKGS="python38 python38-pip tar bash-completion" && \ +RUN INSTALL_PKGS="python38 python38-pip tar bash-completion vim-minimal less" && \ microdnf -y update --setopt=install_weak_deps=0 --setopt=tsflags=nodocs && \ microdnf -y install --setopt=install_weak_deps=0 --setopt=tsflags=nodocs ${INSTALL_PKGS} From 49e081103ef85205c867010e9f9fded711861c5a Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Sun, 16 Apr 2023 14:28:38 -0400 Subject: [PATCH 24/51] run as ziggy --- docker-images/ziti-controller/Dockerfile | 2 +- docker-images/ziti-router/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-images/ziti-controller/Dockerfile b/docker-images/ziti-controller/Dockerfile index 791490a0a..71fe158fd 100644 --- a/docker-images/ziti-controller/Dockerfile +++ b/docker-images/ziti-controller/Dockerfile @@ -16,6 +16,6 @@ LABEL name="openziti/ziti-controller" \ USER root COPY ./entrypoint.sh / RUN chmod +x /entrypoint.sh -USER nobody +USER ziggy ENTRYPOINT [ "/entrypoint.sh" ] CMD [ "run" ] diff --git a/docker-images/ziti-router/Dockerfile b/docker-images/ziti-router/Dockerfile index 5b7ccfd7d..eb6b1c682 100644 --- a/docker-images/ziti-router/Dockerfile +++ b/docker-images/ziti-router/Dockerfile @@ -16,6 +16,6 @@ LABEL name="openziti/ziti-router" \ USER root COPY ./entrypoint.sh / RUN chmod +x /entrypoint.sh -USER nobody +USER ziggy ENTRYPOINT [ "/entrypoint.sh" ] CMD [ "run" ] From acbfcd878b964d2032990e0c3cca4afd76c7b482 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sat, 22 Apr 2023 18:46:16 -0400 Subject: [PATCH 25/51] remove errant quote --- quickstart/docker/image/ziti-cli-functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstart/docker/image/ziti-cli-functions.sh b/quickstart/docker/image/ziti-cli-functions.sh index 70086c222..fa24058d7 100755 --- a/quickstart/docker/image/ziti-cli-functions.sh +++ b/quickstart/docker/image/ziti-cli-functions.sh @@ -69,7 +69,7 @@ export DEFAULT_ZITI_HOME_LOCATION="${HOME}/.ziti/quickstart/${DEFAULT_ZITI_NETWO export ZITI_QUICKSTART_ENVROOT="${HOME}/.ziti/quickstart" function zitiLogin { - "${ZITI_BIN_DIR-}/ziti" edge login "${ZITI_EDGE_CTRL_ADVERTISED}" -u "${ZITI_USER-}" -p "${ZITI_PWD}" -y" + "${ZITI_BIN_DIR-}/ziti" edge login "${ZITI_EDGE_CTRL_ADVERTISED}" -u "${ZITI_USER-}" -p "${ZITI_PWD}" -y } function cleanZitiController { checkEnvVariable ZITI_HOME From fc1a13a98b46372593316785d7984e7ffc929dae Mon Sep 17 00:00:00 2001 From: Geoff Berl <95235264+gberl002@users.noreply.github.com> Date: Mon, 24 Apr 2023 13:01:17 -0400 Subject: [PATCH 26/51] Upgrading workflow login to v2 (#1098) Signed-off-by: gberl002 --- .github/workflows/push-quickstart.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push-quickstart.yml b/.github/workflows/push-quickstart.yml index 611a8066b..6a47a86c7 100644 --- a/.github/workflows/push-quickstart.yml +++ b/.github/workflows/push-quickstart.yml @@ -8,7 +8,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Login to Docker Hub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ vars.DOCKER_HUB_API_USER }} password: ${{ secrets.DOCKER_HUB_API_TOKEN }} From 74fa1dbbc7c5da80f401f54692f1bc54359c539b Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 24 Apr 2023 13:17:41 -0400 Subject: [PATCH 27/51] fix docker login --- .github/workflows/push-quickstart.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push-quickstart.yml b/.github/workflows/push-quickstart.yml index 6a47a86c7..9cebda1ea 100644 --- a/.github/workflows/push-quickstart.yml +++ b/.github/workflows/push-quickstart.yml @@ -10,7 +10,7 @@ jobs: - name: Login to Docker Hub uses: docker/login-action@v2 with: - username: ${{ vars.DOCKER_HUB_API_USER }} + username: ${{ vars.DOCKER_HUB_API_USER || secrets.DOCKER_HUB_API_USER }} password: ${{ secrets.DOCKER_HUB_API_TOKEN }} - name: Push to Docker run: ./quickstart/docker/pushLatestDocker.sh From 2290b44c9bea39d11f1c978593781df8d45b7c3b Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 27 Apr 2023 13:41:16 -0400 Subject: [PATCH 28/51] updates edge and go sdk to latest --- go.mod | 28 +++++++++++++++------------- go.sum | 19 +++++++++++++++++++ ziti/controller/delete_sessions.go | 4 ++-- ziti/tunnel/root.go | 12 ++++++++---- ziti/util/identities.go | 6 +++--- 5 files changed, 47 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index 075f63d77..da3812c48 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/fatih/color v1.15.0 github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa github.com/go-acme/lego/v4 v4.2.0 - github.com/go-openapi/runtime v0.25.0 + github.com/go-openapi/runtime v0.26.0 github.com/go-openapi/strfmt v0.21.7 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/golang/protobuf v1.5.2 @@ -21,16 +21,16 @@ require ( github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 github.com/michaelquigley/pfxlog v0.6.10 github.com/openziti/agent v1.0.10 - github.com/openziti/channel/v2 v2.0.58 - github.com/openziti/edge v0.24.239 - github.com/openziti/edge-api v0.25.11 - github.com/openziti/fabric v0.22.89 + github.com/openziti/channel/v2 v2.0.62 + github.com/openziti/edge v0.24.251 + github.com/openziti/edge-api v0.25.17 + github.com/openziti/fabric v0.23.1 github.com/openziti/foundation/v2 v2.0.21 - github.com/openziti/identity v1.0.45 + github.com/openziti/identity v1.0.47 github.com/openziti/runzmd v1.0.20 - github.com/openziti/sdk-golang v0.18.76 - github.com/openziti/storage v0.1.49 - github.com/openziti/transport/v2 v2.0.72 + github.com/openziti/sdk-golang v0.20.0 + github.com/openziti/storage v0.2.0 + github.com/openziti/transport/v2 v2.0.75 github.com/openziti/xweb/v2 v2.0.2 github.com/openziti/ziti-db-explorer v1.1.1 github.com/pkg/errors v0.9.1 @@ -66,7 +66,7 @@ require ( github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c // indirect github.com/boltdb/bolt v1.3.1 // indirect github.com/c-bata/go-prompt v0.2.6 // indirect - github.com/cenkalti/backoff/v4 v4.2.0 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/coreos/go-iptables v0.6.0 // indirect github.com/creack/pty v1.1.11 // indirect github.com/davecgh/go-spew v1.1.1 // indirect @@ -90,7 +90,7 @@ require ( github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/loads v0.21.2 // indirect - github.com/go-openapi/spec v0.20.8 // indirect + github.com/go-openapi/spec v0.20.9 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/go-openapi/validate v0.22.1 // indirect github.com/go-resty/resty/v2 v2.7.0 // indirect @@ -106,9 +106,10 @@ require ( github.com/hashicorp/golang-lru v0.6.0 // indirect github.com/hashicorp/golang-lru/v2 v2.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/raft v1.4.0 // indirect + github.com/hashicorp/raft v1.5.0 // indirect github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d // indirect github.com/jessevdk/go-flags v1.5.0 // indirect github.com/jinzhu/copier v0.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -142,6 +143,7 @@ require ( github.com/opencontainers/image-spec v1.0.2 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/openziti/dilithium v0.3.3 // indirect + github.com/openziti/foundation v0.17.31 // indirect github.com/openziti/jwks v1.0.3 // indirect github.com/openziti/metrics v1.2.19 // indirect github.com/openziti/x509-claims v1.0.3 // indirect @@ -175,7 +177,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect golang.org/x/crypto v0.8.0 // indirect - golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect + golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 // indirect golang.org/x/image v0.7.0 // indirect golang.org/x/mod v0.8.0 // indirect golang.org/x/sync v0.1.0 // indirect diff --git a/go.sum b/go.sum index f4ce2e662..530a4b02b 100644 --- a/go.sum +++ b/go.sum @@ -137,6 +137,7 @@ github.com/c-bata/go-prompt v0.2.6/go.mod h1:/LMAke8wD2FsNu9EXNdHxNLbd9MedkPnCdf github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= @@ -284,10 +285,12 @@ github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8en github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= github.com/go-openapi/runtime v0.25.0 h1:7yQTCdRbWhX8vnIjdzU8S00tBYf7Sg71EBeorlPHvhc= github.com/go-openapi/runtime v0.25.0/go.mod h1:Ux6fikcHXyyob6LNWxtE96hWwjBPYF0DXgVFuMTneOs= +github.com/go-openapi/runtime v0.26.0/go.mod h1:QgRGeZwrUcSHdeh4Ka9Glvo0ug1LC5WyE+EV88plZrQ= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/spec v0.20.8 h1:ubHmXNY3FCIOinT8RNrrPfGc9t7I1qhPtdOGoG2AxRU= github.com/go-openapi/spec v0.20.8/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= +github.com/go-openapi/spec v0.20.9/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= github.com/go-openapi/strfmt v0.21.3/go.mod h1:k+RzNO0Da+k3FrrynSNN8F7n/peCmQQqbbXjtDfvmGg= @@ -482,6 +485,7 @@ github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2p github.com/hashicorp/raft v1.1.0/go.mod h1:4Ak7FSPnuvmb0GV6vgIAJ4vYT4bek9bb6Q+7HVbyzqM= github.com/hashicorp/raft v1.4.0 h1:tn28S/AWv0BtRQgwZv/1NELu8sCvI0FixqL8C8MYKeY= github.com/hashicorp/raft v1.4.0/go.mod h1:nz64BIjXphDLATfKGG5RzHtNUPioLeKFsXEm88yTVew= +github.com/hashicorp/raft v1.5.0/go.mod h1:pKHB2mf/Y25u3AHNSXVRv+yT+WAnmeTX0BwVppVQV+M= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 h1:CO8dBMLH6dvE1jTn/30ZZw3iuPsNfajshWoJTnVc5cc= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0/go.mod h1:nTakvJ4XYq45UXtn0DbwR4aU9ZdjlnIenpbs6Cd+FM0= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= @@ -495,6 +499,8 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb-client-go/v2 v2.2.2/go.mod h1:fa/d1lAdUHxuc1jedx30ZfNG573oQTQmUni3N6pcW+0= +github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA= +github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= github.com/jedib0t/go-pretty/v6 v6.4.0 h1:YlI/2zYDrweA4MThiYMKtGRfT+2qZOO65ulej8GTcVI= github.com/jedib0t/go-pretty/v6 v6.4.0/go.mod h1:MgmISkTWDSFu0xOqiZ0mKNntMQ2mDgOcwOkwBEkMDJI= @@ -701,18 +707,26 @@ github.com/openziti/agent v1.0.10 h1:9oTmNXghlggD+O7BJdBp3PkD5kAZ1ssSC6IHZkMakzQ github.com/openziti/agent v1.0.10/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= github.com/openziti/channel/v2 v2.0.58 h1:j9baDM8nEAgHNhJ9n1h+WWbFSgCQCjvNB3KCr5x5q6c= github.com/openziti/channel/v2 v2.0.58/go.mod h1:Wa3TS5o4pBFSGnDb9zRCGww29ZVXk0GnupwNpb/2DWE= +github.com/openziti/channel/v2 v2.0.62/go.mod h1:TS2FJs1GuCZXUfSFfptrNWKeTuQRO7YJ9K7C2jWMznA= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= github.com/openziti/edge v0.24.239 h1:S7bAy/BfpGpKwXnfWuGgWpfjUEuJ5iwZojTxu9W8DO0= github.com/openziti/edge v0.24.239/go.mod h1:G6PLbcyib36KH9hN6tMacr2UMin15EmZioSGPPptJ0U= +github.com/openziti/edge v0.24.251 h1:F7m8U3UQLEC53s3t/UXGsAKlSar8qY+BubD1Ek01OcA= +github.com/openziti/edge v0.24.251/go.mod h1:Qoj6QDOxOtBZf36CHDu8FLDwpiTY6Ra7xcFmVsRFVM0= github.com/openziti/edge-api v0.25.11 h1:HHjDgoybPZGRZ+tM2udehI+U5Xv991iGED8E6CtDb9w= github.com/openziti/edge-api v0.25.11/go.mod h1:PBFMYELgr7JUuaCqHobq1U+WESsutzgEDoELU/9qFOg= +github.com/openziti/edge-api v0.25.17/go.mod h1:TC+hI2eI9X5PvqT0UtnOpEDQBkMK5yUEc8BtDJhyCCE= github.com/openziti/fabric v0.22.89 h1:6s4zrvKfSqwsCF74KxV3LEh7/qKFPJEaYNcjLauXANo= github.com/openziti/fabric v0.22.89/go.mod h1:LI8A9Sf012ICzFQERh9zHzvKMdjcMcW2sPFCzKTsW9E= +github.com/openziti/fabric v0.23.1/go.mod h1:p5EI0s0LvNi6HipLR+PWDon89C3dhfyX/jac/3cwmpA= +github.com/openziti/foundation v0.17.31 h1:rLuoBhH/YKy7HTKDTiBzEIXffZq7nr+waJvepdwBWNE= +github.com/openziti/foundation v0.17.31/go.mod h1:yOn4gl8cAv5r98fd3pvQFj57hrG4V9R8r4AAgYes/Lw= github.com/openziti/foundation/v2 v2.0.21 h1:3EDDmSunsbd2DlULuY/vqj12LHRZOknH/m3lf6Ws5Nw= github.com/openziti/foundation/v2 v2.0.21/go.mod h1:02GW3jFSSlfLwYwuTIldP/S4w7eCKqlzL6ajFSGHNPA= github.com/openziti/identity v1.0.45 h1:e2kXoMCPcaUXy+k6GwasuKeGSJwavFEr+eOvUA228UY= github.com/openziti/identity v1.0.45/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= +github.com/openziti/identity v1.0.47/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc= github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ= github.com/openziti/metrics v1.2.19 h1:gQO3e2lUotRHBdGUXYBPWMIErIyyF5hw0EakwQbJzuM= @@ -721,10 +735,13 @@ github.com/openziti/runzmd v1.0.20 h1:LzRPZRVO9AepAFzGTEsRGp2LRVtJp5vr+QOBl8KbN4 github.com/openziti/runzmd v1.0.20/go.mod h1:IXTk5dHAZxtqjg9WVHOiyXHqEHZdwaH5Wg80h5Ux3bQ= github.com/openziti/sdk-golang v0.18.76 h1:D+UW1lpGHBBgfVrObpauq9RvJV/TFPdEEshfuPkiMcI= github.com/openziti/sdk-golang v0.18.76/go.mod h1:kw/5rWDLwx52iwW/4a0VRQMUi7GPSI3aETx+G5TvdFQ= +github.com/openziti/sdk-golang v0.20.0/go.mod h1:5deFxXx5JWeOVCfRkyi6EfeALbhQ7avx2hymLJj9Q98= github.com/openziti/storage v0.1.49 h1:luRsssYlGhpiJxjgc+FWF/yd2JLs9IKfeKID/5Hknrg= github.com/openziti/storage v0.1.49/go.mod h1:Le2VFNL67YewLtaCnGNXPLH18Yrh/EMxeJ/eXxTOwak= +github.com/openziti/storage v0.2.0/go.mod h1:rJjLObUtJBNcm7MvnTr4DHCXZ+ppg0OMeoJ5tfi1aJI= github.com/openziti/transport/v2 v2.0.72 h1:yjJtxy3Ckx5I4pDicmxILTdqQB6D18LSg2Zvsde0T00= github.com/openziti/transport/v2 v2.0.72/go.mod h1:YuDvm+syZc9nfdhbdPZdtuL1Dfw+bELWhWVYAg73ups= +github.com/openziti/transport/v2 v2.0.75/go.mod h1:xMoDhxk9FFQoVyh4YL2h1hOshE5Aqlabd4mctmK1TWU= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= @@ -1036,6 +1053,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 h1:5llv2sWeaMSnA3w2kS57ouQQ4pudlXrR0dCgw51QK9o= +golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= diff --git a/ziti/controller/delete_sessions.go b/ziti/controller/delete_sessions.go index 6524f99c9..880eab39e 100644 --- a/ziti/controller/delete_sessions.go +++ b/ziti/controller/delete_sessions.go @@ -181,9 +181,9 @@ func deleteSessions(db boltz.Db) { pfxlog.Logger().Errorf("could not read databse stats: %v", err) } - err = db.Update(func(tx *bbolt.Tx) error { + err = db.Update(nil, func(ctx boltz.MutateContext) error { - root := tx.Bucket([]byte("ziti")) + root := ctx.Tx().Bucket([]byte("ziti")) if root == nil { return errors.New("root 'ziti' bucket not found") diff --git a/ziti/tunnel/root.go b/ziti/tunnel/root.go index 5b0291f96..9716915d5 100644 --- a/ziti/tunnel/root.go +++ b/ziti/tunnel/root.go @@ -17,6 +17,7 @@ package tunnel import ( + "github.com/openziti/sdk-golang/ziti/sdkinfo" "github.com/openziti/ziti/ziti/cmd/common" "github.com/openziti/ziti/ziti/constants" "github.com/openziti/ziti/ziti/util" @@ -31,7 +32,6 @@ import ( "github.com/openziti/edge/tunnel/entities" "github.com/openziti/edge/tunnel/intercept" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/openziti/ziti/common/enrollment" "github.com/openziti/ziti/common/version" "github.com/sirupsen/logrus" @@ -124,7 +124,7 @@ func rootPostRun(cmd *cobra.Command, _ []string) { } } - ziti.SetApplication("ziti-tunnel", version.GetVersion()) + sdkinfo.SetApplication("ziti-tunnel", version.GetVersion()) resolverConfig := cmd.Flag(resolverCfgFlag).Value.String() resolver := dns.NewResolver(resolverConfig) @@ -167,7 +167,7 @@ func startIdentity(cmd *cobra.Command, serviceListenerGroup *intercept.ServiceLi log := pfxlog.Logger() log.Infof("loading identity: %v", identityJson) - zitiCfg, err := config.NewFromFile(identityJson) + zitiCfg, err := ziti.NewConfigFromFile(identityJson) if err != nil { log.Fatalf("failed to load ziti configuration from %s: %v", identityJson, err) } @@ -190,7 +190,11 @@ func startIdentity(cmd *cobra.Command, serviceListenerGroup *intercept.ServiceLi OnServiceUpdate: serviceListener.HandleServicesChange, } - rootPrivateContext := ziti.NewContextWithOpts(zitiCfg, options) + rootPrivateContext, err := ziti.NewContextWithOpts(zitiCfg, options) + + if err != nil { + pfxlog.Logger().WithError(err).Fatal("could not create ziti sdk context") + } for { if err = rootPrivateContext.Authenticate(); err != nil { diff --git a/ziti/util/identities.go b/ziti/util/identities.go index 56d0ea940..22d233359 100644 --- a/ziti/util/identities.go +++ b/ziti/util/identities.go @@ -7,9 +7,9 @@ import ( "fmt" httptransport "github.com/go-openapi/runtime/client" "github.com/openziti/edge-api/rest_management_api_client" + "github.com/openziti/edge/controller/env" fabric_rest_client "github.com/openziti/fabric/rest_client" "github.com/openziti/identity" - "github.com/openziti/sdk-golang/ziti/constants" "github.com/openziti/ziti/ziti/cmd/common" "github.com/pkg/errors" "gopkg.in/resty.v1" @@ -113,7 +113,7 @@ func (self *RestClientEdgeIdentity) NewClient(timeout time.Duration, verbose boo func (self *RestClientEdgeIdentity) NewRequest(client *resty.Client) *resty.Request { r := client.R() - r.SetHeader(constants.ZitiSession, self.Token) + r.SetHeader(env.ZitiSession, self.Token) return r } @@ -173,7 +173,7 @@ func (self *RestClientEdgeIdentity) NewFabricManagementClient(clientOpts ClientO func (self *RestClientEdgeIdentity) NewWsHeader() http.Header { result := http.Header{} - result.Set(constants.ZitiSession, self.Token) + result.Set(env.ZitiSession, self.Token) return result } From de37127846704bfcc94a2582356097603820b7c2 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 27 Apr 2023 14:03:22 -0400 Subject: [PATCH 29/51] fix other binaries --- common/enrollment/enroll.go | 4 ++-- go.mod | 5 +++-- go.sum | 12 ++++++++++++ ziti-fabric-test/subcmd/loop2/dialer.go | 13 ++++++++----- ziti-fabric-test/subcmd/loop2/listener.go | 13 ++++++++----- ziti-fabric-test/subcmd/loop3/dialer.go | 15 +++++++++------ ziti-fabric-test/subcmd/loop3/listener.go | 13 ++++++++----- ziti-fabric-test/subcmd/loop3/metrics.go | 11 +++++++---- ziti/cmd/demo/echo_server.go | 21 ++++++++++++--------- ziti/cmd/demo/zcat.go | 10 +++++++--- ziti/cmd/edge/traceroute.go | 11 +++++++---- ziti/cmd/tutorial/ziti_echo_client.go | 9 ++++++--- ziti/cmd/tutorial/ziti_echo_server.go | 10 +++++++--- ziti/router/enrollgw.go | 4 ++-- 14 files changed, 98 insertions(+), 53 deletions(-) diff --git a/common/enrollment/enroll.go b/common/enrollment/enroll.go index 8010f9fb4..89a1a7def 100644 --- a/common/enrollment/enroll.go +++ b/common/enrollment/enroll.go @@ -19,6 +19,7 @@ package enrollment import ( "encoding/json" "fmt" + "github.com/openziti/sdk-golang/ziti" "github.com/openziti/ziti/ziti/cmd/common" "io/ioutil" "os" @@ -27,7 +28,6 @@ import ( "github.com/michaelquigley/pfxlog" "github.com/openziti/foundation/v2/term" "github.com/openziti/identity/certtools" - "github.com/openziti/sdk-golang/ziti/config" "github.com/openziti/sdk-golang/ziti/enroll" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -48,7 +48,7 @@ const outFlag = "out" type EnrollOptions struct { common.CommonOptions RemoveJwt bool - KeyAlg config.KeyAlgVar + KeyAlg ziti.KeyAlgVar JwtPath string OutputPath string KeyPath string diff --git a/go.mod b/go.mod index da3812c48..10147d252 100644 --- a/go.mod +++ b/go.mod @@ -23,12 +23,12 @@ require ( github.com/openziti/agent v1.0.10 github.com/openziti/channel/v2 v2.0.62 github.com/openziti/edge v0.24.251 - github.com/openziti/edge-api v0.25.17 + github.com/openziti/edge-api v0.25.18 github.com/openziti/fabric v0.23.1 github.com/openziti/foundation/v2 v2.0.21 github.com/openziti/identity v1.0.47 github.com/openziti/runzmd v1.0.20 - github.com/openziti/sdk-golang v0.20.0 + github.com/openziti/sdk-golang v0.20.2 github.com/openziti/storage v0.2.0 github.com/openziti/transport/v2 v2.0.75 github.com/openziti/xweb/v2 v2.0.2 @@ -146,6 +146,7 @@ require ( github.com/openziti/foundation v0.17.31 // indirect github.com/openziti/jwks v1.0.3 // indirect github.com/openziti/metrics v1.2.19 // indirect + github.com/openziti/secretstream v0.1.6 // indirect github.com/openziti/x509-claims v1.0.3 // indirect github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 // indirect diff --git a/go.sum b/go.sum index 530a4b02b..55527b660 100644 --- a/go.sum +++ b/go.sum @@ -137,6 +137,7 @@ github.com/c-bata/go-prompt v0.2.6/go.mod h1:/LMAke8wD2FsNu9EXNdHxNLbd9MedkPnCdf github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -285,11 +286,13 @@ github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8en github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= github.com/go-openapi/runtime v0.25.0 h1:7yQTCdRbWhX8vnIjdzU8S00tBYf7Sg71EBeorlPHvhc= github.com/go-openapi/runtime v0.25.0/go.mod h1:Ux6fikcHXyyob6LNWxtE96hWwjBPYF0DXgVFuMTneOs= +github.com/go-openapi/runtime v0.26.0 h1:HYOFtG00FM1UvqrcxbEJg/SwvDRvYLQKGhw2zaQjTcc= github.com/go-openapi/runtime v0.26.0/go.mod h1:QgRGeZwrUcSHdeh4Ka9Glvo0ug1LC5WyE+EV88plZrQ= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/spec v0.20.8 h1:ubHmXNY3FCIOinT8RNrrPfGc9t7I1qhPtdOGoG2AxRU= github.com/go-openapi/spec v0.20.8/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= +github.com/go-openapi/spec v0.20.9 h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8= github.com/go-openapi/spec v0.20.9/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= @@ -707,6 +710,7 @@ github.com/openziti/agent v1.0.10 h1:9oTmNXghlggD+O7BJdBp3PkD5kAZ1ssSC6IHZkMakzQ github.com/openziti/agent v1.0.10/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= github.com/openziti/channel/v2 v2.0.58 h1:j9baDM8nEAgHNhJ9n1h+WWbFSgCQCjvNB3KCr5x5q6c= github.com/openziti/channel/v2 v2.0.58/go.mod h1:Wa3TS5o4pBFSGnDb9zRCGww29ZVXk0GnupwNpb/2DWE= +github.com/openziti/channel/v2 v2.0.62 h1:WmNYAugoyQ2HFu2VEhOH4WExzXsX6+dzSQDzNfHf5M8= github.com/openziti/channel/v2 v2.0.62/go.mod h1:TS2FJs1GuCZXUfSFfptrNWKeTuQRO7YJ9K7C2jWMznA= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= @@ -717,6 +721,8 @@ github.com/openziti/edge v0.24.251/go.mod h1:Qoj6QDOxOtBZf36CHDu8FLDwpiTY6Ra7xcF github.com/openziti/edge-api v0.25.11 h1:HHjDgoybPZGRZ+tM2udehI+U5Xv991iGED8E6CtDb9w= github.com/openziti/edge-api v0.25.11/go.mod h1:PBFMYELgr7JUuaCqHobq1U+WESsutzgEDoELU/9qFOg= github.com/openziti/edge-api v0.25.17/go.mod h1:TC+hI2eI9X5PvqT0UtnOpEDQBkMK5yUEc8BtDJhyCCE= +github.com/openziti/edge-api v0.25.18 h1:LEiDz7MF4R9ZQNHwG34oTy4XCUlX4+kXRzvNYhp6e08= +github.com/openziti/edge-api v0.25.18/go.mod h1:m4fMjlxnU1Yq9rsBYNKMs1B3BxLZlpo/V3iy42H/Bkg= github.com/openziti/fabric v0.22.89 h1:6s4zrvKfSqwsCF74KxV3LEh7/qKFPJEaYNcjLauXANo= github.com/openziti/fabric v0.22.89/go.mod h1:LI8A9Sf012ICzFQERh9zHzvKMdjcMcW2sPFCzKTsW9E= github.com/openziti/fabric v0.23.1/go.mod h1:p5EI0s0LvNi6HipLR+PWDon89C3dhfyX/jac/3cwmpA= @@ -726,6 +732,7 @@ github.com/openziti/foundation/v2 v2.0.21 h1:3EDDmSunsbd2DlULuY/vqj12LHRZOknH/m3 github.com/openziti/foundation/v2 v2.0.21/go.mod h1:02GW3jFSSlfLwYwuTIldP/S4w7eCKqlzL6ajFSGHNPA= github.com/openziti/identity v1.0.45 h1:e2kXoMCPcaUXy+k6GwasuKeGSJwavFEr+eOvUA228UY= github.com/openziti/identity v1.0.45/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= +github.com/openziti/identity v1.0.47 h1:Zc1wL4yMq6hcmbgNR6d3gSkGCiK3IJYd9i4obBNBMPw= github.com/openziti/identity v1.0.47/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc= github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ= @@ -736,11 +743,16 @@ github.com/openziti/runzmd v1.0.20/go.mod h1:IXTk5dHAZxtqjg9WVHOiyXHqEHZdwaH5Wg8 github.com/openziti/sdk-golang v0.18.76 h1:D+UW1lpGHBBgfVrObpauq9RvJV/TFPdEEshfuPkiMcI= github.com/openziti/sdk-golang v0.18.76/go.mod h1:kw/5rWDLwx52iwW/4a0VRQMUi7GPSI3aETx+G5TvdFQ= github.com/openziti/sdk-golang v0.20.0/go.mod h1:5deFxXx5JWeOVCfRkyi6EfeALbhQ7avx2hymLJj9Q98= +github.com/openziti/sdk-golang v0.20.2 h1:HTwWN7RmWrIop+AspcR2gVr13KYm4s3KS2RvgPhmVWs= +github.com/openziti/sdk-golang v0.20.2/go.mod h1:QE22lxF7REJXuggFCPPiKrlttgwrqSPEvUb0ka+jtjk= +github.com/openziti/secretstream v0.1.6 h1:TbpTwW/lc/0kuvaoRNjpiyebxh2Hyx8XSTB269QtHN4= +github.com/openziti/secretstream v0.1.6/go.mod h1:Gc6fhaDC46UUvwJD4ogbYji22YSdz3fe8bno+BFIpcE= github.com/openziti/storage v0.1.49 h1:luRsssYlGhpiJxjgc+FWF/yd2JLs9IKfeKID/5Hknrg= github.com/openziti/storage v0.1.49/go.mod h1:Le2VFNL67YewLtaCnGNXPLH18Yrh/EMxeJ/eXxTOwak= github.com/openziti/storage v0.2.0/go.mod h1:rJjLObUtJBNcm7MvnTr4DHCXZ+ppg0OMeoJ5tfi1aJI= github.com/openziti/transport/v2 v2.0.72 h1:yjJtxy3Ckx5I4pDicmxILTdqQB6D18LSg2Zvsde0T00= github.com/openziti/transport/v2 v2.0.72/go.mod h1:YuDvm+syZc9nfdhbdPZdtuL1Dfw+bELWhWVYAg73ups= +github.com/openziti/transport/v2 v2.0.75 h1:KZmnyRH1SOXSI6DXqDRsbRxRJE2cWv5EDCiQqC+R+hQ= github.com/openziti/transport/v2 v2.0.75/go.mod h1:xMoDhxk9FFQoVyh4YL2h1hOshE5Aqlabd4mctmK1TWU= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= diff --git a/ziti-fabric-test/subcmd/loop2/dialer.go b/ziti-fabric-test/subcmd/loop2/dialer.go index 0603f719c..19cea5dba 100644 --- a/ziti-fabric-test/subcmd/loop2/dialer.go +++ b/ziti-fabric-test/subcmd/loop2/dialer.go @@ -20,10 +20,9 @@ import ( "fmt" "github.com/michaelquigley/pfxlog" "github.com/openziti/fabric/router/xgress_transport" - "github.com/openziti/identity/dotziti" "github.com/openziti/identity" + "github.com/openziti/identity/dotziti" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/openziti/transport/v2" "github.com/openziti/ziti/ziti-fabric-test/subcmd/loop2/pb" "github.com/spf13/cobra" @@ -162,13 +161,17 @@ func (cmd *dialerCmd) connect() net.Conn { var context ziti.Context if cmd.edgeConfigFile != "" { - zitiCfg, err := config.NewFromFile(cmd.edgeConfigFile) + zitiCfg, err := ziti.NewConfigFromFile(cmd.edgeConfigFile) if err != nil { log.Fatalf("failed to load ziti configuration from %s: %v", cmd.edgeConfigFile, err) } - context = ziti.NewContextWithConfig(zitiCfg) + + context, err = ziti.NewContext(zitiCfg) + if err != nil { + log.Fatalf("failed to load ziti context fromt configuration: %v", err) + } } else { - context = ziti.NewContext() + log.Fatal("no configuration file provided") } service := strings.TrimPrefix(cmd.endpoint, "edge:") diff --git a/ziti-fabric-test/subcmd/loop2/listener.go b/ziti-fabric-test/subcmd/loop2/listener.go index 84e0daa95..f4487617e 100644 --- a/ziti-fabric-test/subcmd/loop2/listener.go +++ b/ziti-fabric-test/subcmd/loop2/listener.go @@ -18,10 +18,9 @@ package loop2 import ( "github.com/michaelquigley/pfxlog" - "github.com/openziti/identity/dotziti" "github.com/openziti/identity" + "github.com/openziti/identity/dotziti" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/openziti/transport/v2" "github.com/openziti/ziti/ziti-fabric-test/subcmd/loop2/pb" "github.com/spf13/cobra" @@ -85,13 +84,17 @@ func (cmd *listenerCmd) listenEdge() { var context ziti.Context if cmd.edgeConfigFile != "" { - zitiCfg, err := config.NewFromFile(cmd.edgeConfigFile) + zitiCfg, err := ziti.NewConfigFromFile(cmd.edgeConfigFile) if err != nil { log.Fatalf("failed to load ziti configuration from %s: %v", cmd.edgeConfigFile, err) } - context = ziti.NewContextWithConfig(zitiCfg) + + context, err = ziti.NewContext(zitiCfg) + if err != nil { + log.Fatalf("failed to load ziti context from cofnig: %v", err) + } } else { - context = ziti.NewContext() + log.Fatal("no configuration file provided") } service := strings.TrimPrefix(cmd.bindAddress, "edge:") diff --git a/ziti-fabric-test/subcmd/loop3/dialer.go b/ziti-fabric-test/subcmd/loop3/dialer.go index 0a1160ee9..ef47515c9 100644 --- a/ziti-fabric-test/subcmd/loop3/dialer.go +++ b/ziti-fabric-test/subcmd/loop3/dialer.go @@ -19,12 +19,11 @@ package loop3 import ( "fmt" "github.com/michaelquigley/pfxlog" - "github.com/openziti/fabric/router/xgress_transport" "github.com/openziti/agent" - "github.com/openziti/identity/dotziti" + "github.com/openziti/fabric/router/xgress_transport" "github.com/openziti/identity" + "github.com/openziti/identity/dotziti" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/openziti/transport/v2" "github.com/spf13/cobra" "net" @@ -158,13 +157,17 @@ func (cmd *dialerCmd) connect() net.Conn { if strings.HasPrefix(cmd.endpoint, "edge:") { var context ziti.Context if cmd.edgeConfigFile != "" { - zitiCfg, err := config.NewFromFile(cmd.edgeConfigFile) + zitiCfg, err := ziti.NewConfigFromFile(cmd.edgeConfigFile) if err != nil { log.Fatalf("failed to load ziti configuration from %s: %v", cmd.edgeConfigFile, err) } - context = ziti.NewContextWithConfig(zitiCfg) + context, err = ziti.NewContext(zitiCfg) + + if err != nil { + log.Fatalf("failed to load ziti context from config: %v", err) + } } else { - context = ziti.NewContext() + log.Fatal("no configuration provided") } service := strings.TrimPrefix(cmd.endpoint, "edge:") diff --git a/ziti-fabric-test/subcmd/loop3/listener.go b/ziti-fabric-test/subcmd/loop3/listener.go index e000fb09b..37cde75a9 100644 --- a/ziti-fabric-test/subcmd/loop3/listener.go +++ b/ziti-fabric-test/subcmd/loop3/listener.go @@ -20,10 +20,9 @@ import ( "errors" "github.com/michaelquigley/pfxlog" "github.com/openziti/agent" - "github.com/openziti/identity/dotziti" "github.com/openziti/identity" + "github.com/openziti/identity/dotziti" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/openziti/transport/v2" loop3_pb "github.com/openziti/ziti/ziti-fabric-test/subcmd/loop3/pb" "github.com/sirupsen/logrus" @@ -138,13 +137,17 @@ func (cmd *listenerCmd) listenEdge() { var context ziti.Context if cmd.edgeConfigFile != "" { - zitiCfg, err := config.NewFromFile(cmd.edgeConfigFile) + zitiCfg, err := ziti.NewConfigFromFile(cmd.edgeConfigFile) if err != nil { log.Fatalf("failed to load ziti configuration from %s: %v", cmd.edgeConfigFile, err) } - context = ziti.NewContextWithConfig(zitiCfg) + context, err = ziti.NewContext(zitiCfg) + + if err != nil { + log.Fatalf("failed to load ziti context from config: %v", err) + } } else { - context = ziti.NewContext() + log.Fatal("no configuration provided") } service := strings.TrimPrefix(cmd.bindAddress, "edge:") diff --git a/ziti-fabric-test/subcmd/loop3/metrics.go b/ziti-fabric-test/subcmd/loop3/metrics.go index b748746d3..b538fb48d 100644 --- a/ziti-fabric-test/subcmd/loop3/metrics.go +++ b/ziti-fabric-test/subcmd/loop3/metrics.go @@ -5,7 +5,6 @@ import ( "github.com/michaelquigley/pfxlog" "github.com/openziti/fabric/pb/mgmt_pb" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/pkg/errors" "github.com/rcrowley/go-metrics" "google.golang.org/protobuf/proto" @@ -69,13 +68,17 @@ func (r *zitiMetricsReporter) run(reportInterval time.Duration) { var client ziti.Context if r.configFile != "" { - sdkConfig, err := config.NewFromFile(r.configFile) + sdkConfig, err := ziti.NewConfigFromFile(r.configFile) + if err != nil { + panic(err) + } + client, err = ziti.NewContext(sdkConfig) + if err != nil { panic(err) } - client = ziti.NewContextWithConfig(sdkConfig) } else { - client = ziti.NewContext() + panic("no configuration file provided") } conn, err := client.Dial(r.service) diff --git a/ziti/cmd/demo/echo_server.go b/ziti/cmd/demo/echo_server.go index bfc304060..768b05606 100644 --- a/ziti/cmd/demo/echo_server.go +++ b/ziti/cmd/demo/echo_server.go @@ -24,7 +24,6 @@ import ( "github.com/openziti/channel/v2" "github.com/openziti/identity" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/openziti/sdk-golang/ziti/edge" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -131,7 +130,7 @@ func (self *echoServer) run(*cobra.Command, []string) { } if self.configFile != "" { - zitiConfig, err := config.NewFromFile(self.configFile) + zitiConfig, err := ziti.NewConfigFromFile(self.configFile) if err != nil { log.WithError(err).Fatalf("ziti: unable to load ziti identity from [%v]", self.configFile) } @@ -140,7 +139,11 @@ func (self *echoServer) run(*cobra.Command, []string) { log.WithError(err).Fatalf("ziti: unable to create ziti identity from [%v]", self.configFile) } - zitiContext := ziti.NewContextWithConfig(zitiConfig) + zitiContext, err := ziti.NewContext(zitiConfig) + + if err != nil { + log.WithError(err).Fatal("unable to get create ziti context from config") + } zitiIdentity, err := zitiContext.GetCurrentIdentity() if err != nil { @@ -149,20 +152,20 @@ func (self *echoServer) run(*cobra.Command, []string) { listenOptions := ziti.DefaultListenOptions() listenOptions.BindUsingEdgeIdentity = self.bindWithIdentity - listenOptions.Cost = zitiIdentity.DefaultHostingCost - listenOptions.Precedence = ziti.GetPrecedenceForLabel(zitiIdentity.DefaultHostingPrecedence) + listenOptions.Cost = uint16(*zitiIdentity.DefaultHostingCost) + listenOptions.Precedence = ziti.GetPrecedenceForLabel(string(zitiIdentity.DefaultHostingPrecedence)) svc, found := zitiContext.GetService(self.service) if !found { log.WithError(err).Fatalf("ziti: unable to lookup service [%v]", self.service) } - if cost, found := zitiIdentity.ServiceHostingCosts[svc.Id]; found { - listenOptions.Cost = uint16(cost.(float64)) + if cost, found := zitiIdentity.ServiceHostingCosts[*svc.ID]; found { + listenOptions.Cost = uint16(*cost) } - if precedence, found := zitiIdentity.ServiceHostingPrecedences[svc.Id]; found { - listenOptions.Precedence = ziti.GetPrecedenceForLabel(precedence.(string)) + if precedence, found := zitiIdentity.ServiceHostingPrecedences[*svc.ID]; found { + listenOptions.Precedence = ziti.GetPrecedenceForLabel(string(precedence)) } log.Infof("ziti: hosting %v with addressable=%v, cost=%v, precedence=%v", diff --git a/ziti/cmd/demo/zcat.go b/ziti/cmd/demo/zcat.go index fda7d7ff9..2711a14a5 100644 --- a/ziti/cmd/demo/zcat.go +++ b/ziti/cmd/demo/zcat.go @@ -20,7 +20,6 @@ import ( "github.com/michaelquigley/pfxlog" "github.com/openziti/foundation/v2/info" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/sirupsen/logrus" "github.com/spf13/cobra" "io" @@ -97,7 +96,7 @@ func (self *zcatAction) run(_ *cobra.Command, args []string) { if network == "tcp" || network == "udp" { conn, err = net.Dial(network, addr) } else if network == "ziti" { - zitiConfig, cfgErr := config.NewFromFile(self.configFile) + zitiConfig, cfgErr := ziti.NewConfigFromFile(self.configFile) if cfgErr != nil { log.WithError(cfgErr).Fatalf("unable to load ziti identity from [%v]", self.configFile) } @@ -108,7 +107,12 @@ func (self *zcatAction) run(_ *cobra.Command, args []string) { addr = addr[atIdx+1:] } - zitiContext := ziti.NewContextWithConfig(zitiConfig) + zitiContext, err := ziti.NewContext(zitiConfig) + + if err != nil { + pfxlog.Logger().WithError(err).Fatal("could not create sdk context from config") + } + dialOptions := &ziti.DialOptions{ ConnectTimeout: 5 * time.Second, Identity: dialIdentifier, diff --git a/ziti/cmd/edge/traceroute.go b/ziti/cmd/edge/traceroute.go index 25fe33c5b..3ca982079 100644 --- a/ziti/cmd/edge/traceroute.go +++ b/ziti/cmd/edge/traceroute.go @@ -3,10 +3,10 @@ package edge import ( "fmt" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/openziti/ziti/ziti/cmd/api" "github.com/openziti/ziti/ziti/cmd/common" cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" + "github.com/pkg/errors" "github.com/sirupsen/logrus" "github.com/spf13/cobra" "io" @@ -60,13 +60,16 @@ func newTraceRouteCmd(out io.Writer, errOut io.Writer) *cobra.Command { func (o *traceRouteOptions) Run() error { var ctx ziti.Context if o.configFile != "" { - cfg, err := config.NewFromFile(o.configFile) + cfg, err := ziti.NewConfigFromFile(o.configFile) + if err != nil { + return err + } + ctx, err = ziti.NewContext(cfg) if err != nil { return err } - ctx = ziti.NewContextWithConfig(cfg) } else { - ctx = ziti.NewContext() + return errors.New("invalid configuration file") } conn, err := ctx.Dial(o.Args[0]) diff --git a/ziti/cmd/tutorial/ziti_echo_client.go b/ziti/cmd/tutorial/ziti_echo_client.go index dca6c0fca..df698d7e1 100644 --- a/ziti/cmd/tutorial/ziti_echo_client.go +++ b/ziti/cmd/tutorial/ziti_echo_client.go @@ -21,7 +21,6 @@ import ( "fmt" "github.com/fatih/color" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "io" "net" "net/http" @@ -31,12 +30,16 @@ import ( ) func NewZitiEchoClient(identityJson string) (*zitiEchoClient, error) { - config, err := config.NewFromFile(identityJson) + config, err := ziti.NewConfigFromFile(identityJson) if err != nil { return nil, err } - zitiContext := ziti.NewContextWithConfig(config) + zitiContext, err := ziti.NewContext(config) + + if err != nil { + return nil, err + } dial := func(_ context.Context, _ string, addr string) (net.Conn, error) { service := strings.Split(addr, ":")[0] // assume host is service diff --git a/ziti/cmd/tutorial/ziti_echo_server.go b/ziti/cmd/tutorial/ziti_echo_server.go index a5d451e10..aa786d048 100644 --- a/ziti/cmd/tutorial/ziti_echo_server.go +++ b/ziti/cmd/tutorial/ziti_echo_server.go @@ -23,7 +23,6 @@ import ( "github.com/fatih/color" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" ) type zitiEchoServer struct { @@ -43,12 +42,17 @@ func (s *zitiEchoServer) ServeHTTP(rw http.ResponseWriter, r *http.Request) { } func (s *zitiEchoServer) run() (err error) { - config, err := config.NewFromFile(s.identityJson) + config, err := ziti.NewConfigFromFile(s.identityJson) if err != nil { return err } - zitiContext := ziti.NewContextWithConfig(config) + zitiContext, err := ziti.NewContext(config) + + if err != nil { + panic(err) + } + if s.listener, err = zitiContext.Listen("echo"); err != nil { return err } diff --git a/ziti/router/enrollgw.go b/ziti/router/enrollgw.go index 58b39b062..fd0175ff4 100644 --- a/ziti/router/enrollgw.go +++ b/ziti/router/enrollgw.go @@ -20,14 +20,14 @@ import ( "github.com/michaelquigley/pfxlog" "github.com/openziti/edge/router/enroll" "github.com/openziti/fabric/router" - "github.com/openziti/sdk-golang/ziti/config" + "github.com/openziti/sdk-golang/ziti" "github.com/spf13/cobra" "io/ioutil" ) var jwtPath *string var engine *string -var keyAlg config.KeyAlgVar +var keyAlg ziti.KeyAlgVar func NewEnrollGwCmd() *cobra.Command { var enrollEdgeRouterCmd = &cobra.Command{ From 66a401f1d7d396ddb375959d9eeec78f9578f470 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 27 Apr 2023 14:07:05 -0400 Subject: [PATCH 30/51] go mod tidy and fixes --- go.mod | 2 -- go.sum | 37 +++------------------ network-tests/utils/ziti-echo/cmd/client.go | 9 +++-- network-tests/utils/ziti-echo/cmd/server.go | 16 +++++---- quickstart/test/quickstart_test.go | 10 +++--- 5 files changed, 25 insertions(+), 49 deletions(-) diff --git a/go.mod b/go.mod index 10147d252..29f087912 100644 --- a/go.mod +++ b/go.mod @@ -109,7 +109,6 @@ require ( github.com/hashicorp/raft v1.5.0 // indirect github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d // indirect github.com/jessevdk/go-flags v1.5.0 // indirect github.com/jinzhu/copier v0.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -143,7 +142,6 @@ require ( github.com/opencontainers/image-spec v1.0.2 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/openziti/dilithium v0.3.3 // indirect - github.com/openziti/foundation v0.17.31 // indirect github.com/openziti/jwks v1.0.3 // indirect github.com/openziti/metrics v1.2.19 // indirect github.com/openziti/secretstream v0.1.6 // indirect diff --git a/go.sum b/go.sum index 55527b660..a3ae71b27 100644 --- a/go.sum +++ b/go.sum @@ -135,8 +135,6 @@ github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7 github.com/c-bata/go-prompt v0.2.6 h1:POP+nrHE+DfLYx370bedwNhsqmpCUynWPxuHi0C5vZI= github.com/c-bata/go-prompt v0.2.6/go.mod h1:/LMAke8wD2FsNu9EXNdHxNLbd9MedkPnCdfpU9wwHfY= github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= -github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= -github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -284,14 +282,10 @@ github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8enro= github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= -github.com/go-openapi/runtime v0.25.0 h1:7yQTCdRbWhX8vnIjdzU8S00tBYf7Sg71EBeorlPHvhc= -github.com/go-openapi/runtime v0.25.0/go.mod h1:Ux6fikcHXyyob6LNWxtE96hWwjBPYF0DXgVFuMTneOs= github.com/go-openapi/runtime v0.26.0 h1:HYOFtG00FM1UvqrcxbEJg/SwvDRvYLQKGhw2zaQjTcc= github.com/go-openapi/runtime v0.26.0/go.mod h1:QgRGeZwrUcSHdeh4Ka9Glvo0ug1LC5WyE+EV88plZrQ= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= -github.com/go-openapi/spec v0.20.8 h1:ubHmXNY3FCIOinT8RNrrPfGc9t7I1qhPtdOGoG2AxRU= -github.com/go-openapi/spec v0.20.8/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/spec v0.20.9 h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8= github.com/go-openapi/spec v0.20.9/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= @@ -486,8 +480,7 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/raft v1.1.0/go.mod h1:4Ak7FSPnuvmb0GV6vgIAJ4vYT4bek9bb6Q+7HVbyzqM= -github.com/hashicorp/raft v1.4.0 h1:tn28S/AWv0BtRQgwZv/1NELu8sCvI0FixqL8C8MYKeY= -github.com/hashicorp/raft v1.4.0/go.mod h1:nz64BIjXphDLATfKGG5RzHtNUPioLeKFsXEm88yTVew= +github.com/hashicorp/raft v1.5.0 h1:uNs9EfJ4FwiArZRxxfd/dQ5d33nV31/CdCHArH89hT8= github.com/hashicorp/raft v1.5.0/go.mod h1:pKHB2mf/Y25u3AHNSXVRv+yT+WAnmeTX0BwVppVQV+M= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 h1:CO8dBMLH6dvE1jTn/30ZZw3iuPsNfajshWoJTnVc5cc= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0/go.mod h1:nTakvJ4XYq45UXtn0DbwR4aU9ZdjlnIenpbs6Cd+FM0= @@ -502,8 +495,6 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb-client-go/v2 v2.2.2/go.mod h1:fa/d1lAdUHxuc1jedx30ZfNG573oQTQmUni3N6pcW+0= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= github.com/jedib0t/go-pretty/v6 v6.4.0 h1:YlI/2zYDrweA4MThiYMKtGRfT+2qZOO65ulej8GTcVI= github.com/jedib0t/go-pretty/v6 v6.4.0/go.mod h1:MgmISkTWDSFu0xOqiZ0mKNntMQ2mDgOcwOkwBEkMDJI= @@ -708,30 +699,18 @@ github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTm github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openziti/agent v1.0.10 h1:9oTmNXghlggD+O7BJdBp3PkD5kAZ1ssSC6IHZkMakzQ= github.com/openziti/agent v1.0.10/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= -github.com/openziti/channel/v2 v2.0.58 h1:j9baDM8nEAgHNhJ9n1h+WWbFSgCQCjvNB3KCr5x5q6c= -github.com/openziti/channel/v2 v2.0.58/go.mod h1:Wa3TS5o4pBFSGnDb9zRCGww29ZVXk0GnupwNpb/2DWE= github.com/openziti/channel/v2 v2.0.62 h1:WmNYAugoyQ2HFu2VEhOH4WExzXsX6+dzSQDzNfHf5M8= github.com/openziti/channel/v2 v2.0.62/go.mod h1:TS2FJs1GuCZXUfSFfptrNWKeTuQRO7YJ9K7C2jWMznA= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= -github.com/openziti/edge v0.24.239 h1:S7bAy/BfpGpKwXnfWuGgWpfjUEuJ5iwZojTxu9W8DO0= -github.com/openziti/edge v0.24.239/go.mod h1:G6PLbcyib36KH9hN6tMacr2UMin15EmZioSGPPptJ0U= github.com/openziti/edge v0.24.251 h1:F7m8U3UQLEC53s3t/UXGsAKlSar8qY+BubD1Ek01OcA= github.com/openziti/edge v0.24.251/go.mod h1:Qoj6QDOxOtBZf36CHDu8FLDwpiTY6Ra7xcFmVsRFVM0= -github.com/openziti/edge-api v0.25.11 h1:HHjDgoybPZGRZ+tM2udehI+U5Xv991iGED8E6CtDb9w= -github.com/openziti/edge-api v0.25.11/go.mod h1:PBFMYELgr7JUuaCqHobq1U+WESsutzgEDoELU/9qFOg= -github.com/openziti/edge-api v0.25.17/go.mod h1:TC+hI2eI9X5PvqT0UtnOpEDQBkMK5yUEc8BtDJhyCCE= github.com/openziti/edge-api v0.25.18 h1:LEiDz7MF4R9ZQNHwG34oTy4XCUlX4+kXRzvNYhp6e08= github.com/openziti/edge-api v0.25.18/go.mod h1:m4fMjlxnU1Yq9rsBYNKMs1B3BxLZlpo/V3iy42H/Bkg= -github.com/openziti/fabric v0.22.89 h1:6s4zrvKfSqwsCF74KxV3LEh7/qKFPJEaYNcjLauXANo= -github.com/openziti/fabric v0.22.89/go.mod h1:LI8A9Sf012ICzFQERh9zHzvKMdjcMcW2sPFCzKTsW9E= +github.com/openziti/fabric v0.23.1 h1:9RFRmApJ9EGUNNwIP4OSZcgFmiBdVLTvLfYsYRID8ws= github.com/openziti/fabric v0.23.1/go.mod h1:p5EI0s0LvNi6HipLR+PWDon89C3dhfyX/jac/3cwmpA= -github.com/openziti/foundation v0.17.31 h1:rLuoBhH/YKy7HTKDTiBzEIXffZq7nr+waJvepdwBWNE= -github.com/openziti/foundation v0.17.31/go.mod h1:yOn4gl8cAv5r98fd3pvQFj57hrG4V9R8r4AAgYes/Lw= github.com/openziti/foundation/v2 v2.0.21 h1:3EDDmSunsbd2DlULuY/vqj12LHRZOknH/m3lf6Ws5Nw= github.com/openziti/foundation/v2 v2.0.21/go.mod h1:02GW3jFSSlfLwYwuTIldP/S4w7eCKqlzL6ajFSGHNPA= -github.com/openziti/identity v1.0.45 h1:e2kXoMCPcaUXy+k6GwasuKeGSJwavFEr+eOvUA228UY= -github.com/openziti/identity v1.0.45/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= github.com/openziti/identity v1.0.47 h1:Zc1wL4yMq6hcmbgNR6d3gSkGCiK3IJYd9i4obBNBMPw= github.com/openziti/identity v1.0.47/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc= @@ -740,18 +719,12 @@ github.com/openziti/metrics v1.2.19 h1:gQO3e2lUotRHBdGUXYBPWMIErIyyF5hw0EakwQbJz github.com/openziti/metrics v1.2.19/go.mod h1:ovvxTpDBxGLcVLHgPTFFvwT4ur8p4Z76BPUhIE5iwqc= github.com/openziti/runzmd v1.0.20 h1:LzRPZRVO9AepAFzGTEsRGp2LRVtJp5vr+QOBl8KbN4w= github.com/openziti/runzmd v1.0.20/go.mod h1:IXTk5dHAZxtqjg9WVHOiyXHqEHZdwaH5Wg80h5Ux3bQ= -github.com/openziti/sdk-golang v0.18.76 h1:D+UW1lpGHBBgfVrObpauq9RvJV/TFPdEEshfuPkiMcI= -github.com/openziti/sdk-golang v0.18.76/go.mod h1:kw/5rWDLwx52iwW/4a0VRQMUi7GPSI3aETx+G5TvdFQ= -github.com/openziti/sdk-golang v0.20.0/go.mod h1:5deFxXx5JWeOVCfRkyi6EfeALbhQ7avx2hymLJj9Q98= github.com/openziti/sdk-golang v0.20.2 h1:HTwWN7RmWrIop+AspcR2gVr13KYm4s3KS2RvgPhmVWs= github.com/openziti/sdk-golang v0.20.2/go.mod h1:QE22lxF7REJXuggFCPPiKrlttgwrqSPEvUb0ka+jtjk= github.com/openziti/secretstream v0.1.6 h1:TbpTwW/lc/0kuvaoRNjpiyebxh2Hyx8XSTB269QtHN4= github.com/openziti/secretstream v0.1.6/go.mod h1:Gc6fhaDC46UUvwJD4ogbYji22YSdz3fe8bno+BFIpcE= -github.com/openziti/storage v0.1.49 h1:luRsssYlGhpiJxjgc+FWF/yd2JLs9IKfeKID/5Hknrg= -github.com/openziti/storage v0.1.49/go.mod h1:Le2VFNL67YewLtaCnGNXPLH18Yrh/EMxeJ/eXxTOwak= +github.com/openziti/storage v0.2.0 h1:uwSoZQEZCzxp4+KZEi7fOWezbm0knmcCbRhni/DGHSo= github.com/openziti/storage v0.2.0/go.mod h1:rJjLObUtJBNcm7MvnTr4DHCXZ+ppg0OMeoJ5tfi1aJI= -github.com/openziti/transport/v2 v2.0.72 h1:yjJtxy3Ckx5I4pDicmxILTdqQB6D18LSg2Zvsde0T00= -github.com/openziti/transport/v2 v2.0.72/go.mod h1:YuDvm+syZc9nfdhbdPZdtuL1Dfw+bELWhWVYAg73ups= github.com/openziti/transport/v2 v2.0.75 h1:KZmnyRH1SOXSI6DXqDRsbRxRJE2cWv5EDCiQqC+R+hQ= github.com/openziti/transport/v2 v2.0.75/go.mod h1:xMoDhxk9FFQoVyh4YL2h1hOshE5Aqlabd4mctmK1TWU= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= @@ -1010,7 +983,7 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= -go.opentelemetry.io/otel/sdk v1.11.1 h1:F7KmQgoHljhUuJyA+9BiU+EkJfyX5nVVF4wyzWZpKxs= +go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= @@ -1063,8 +1036,6 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 h1:5llv2sWeaMSnA3w2kS57ouQQ4pudlXrR0dCgw51QK9o= golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= diff --git a/network-tests/utils/ziti-echo/cmd/client.go b/network-tests/utils/ziti-echo/cmd/client.go index b6e43b82b..84fb547af 100644 --- a/network-tests/utils/ziti-echo/cmd/client.go +++ b/network-tests/utils/ziti-echo/cmd/client.go @@ -11,7 +11,6 @@ import ( "strings" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/spf13/cobra" ) @@ -28,12 +27,16 @@ func init() { } func echoClient(cmd *cobra.Command, args []string) { - cfg, err := config.NewFromFile(identityFile) + cfg, err := ziti.NewConfigFromFile(identityFile) if err != nil { log.Fatal(err) } - zitiContext := ziti.NewContextWithConfig(cfg) + zitiContext, err := ziti.NewContext(cfg) + + if err != nil { + log.Fatal(err) + } dial := func(_ context.Context, _, addr string) (net.Conn, error) { service := strings.Split(addr, ":")[0] diff --git a/network-tests/utils/ziti-echo/cmd/server.go b/network-tests/utils/ziti-echo/cmd/server.go index 8ae90af3d..c261d460a 100644 --- a/network-tests/utils/ziti-echo/cmd/server.go +++ b/network-tests/utils/ziti-echo/cmd/server.go @@ -1,6 +1,9 @@ package cmd import ( + "github.com/openziti/sdk-golang/ziti" + "github.com/sirupsen/logrus" + "github.com/spf13/cobra" "log" "net" "net/http" @@ -8,11 +11,6 @@ import ( "os/signal" "syscall" "time" - - "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" ) var serverCmd = &cobra.Command{ @@ -64,12 +62,16 @@ func (s *zitiEchoServer) ServeHTTP(rw http.ResponseWriter, r *http.Request) { } func (s *zitiEchoServer) run() (err error) { - config, err := config.NewFromFile(s.identityJson) + config, err := ziti.NewConfigFromFile(s.identityJson) + if err != nil { + return err + } + + zitiContext, err := ziti.NewContext(config) if err != nil { return err } - zitiContext := ziti.NewContextWithConfig(config) if s.listener, err = zitiContext.Listen("echo"); err != nil { return err } diff --git a/quickstart/test/quickstart_test.go b/quickstart/test/quickstart_test.go index f0e2a8883..12379cb2f 100644 --- a/quickstart/test/quickstart_test.go +++ b/quickstart/test/quickstart_test.go @@ -24,7 +24,6 @@ import ( "github.com/openziti/edge-api/rest_model" "github.com/openziti/edge-api/rest_util" "github.com/openziti/sdk-golang/ziti" - sdk_config "github.com/openziti/sdk-golang/ziti/config" "github.com/openziti/sdk-golang/ziti/enroll" "github.com/pkg/errors" log "github.com/sirupsen/logrus" @@ -407,7 +406,7 @@ func TestSimpleWebService(t *testing.T) { assert.Equal(t, 200, resp.StatusCode, fmt.Sprintf("Expected successful HTTP status code 200, received %d instead", resp.StatusCode)) } -func enrollIdentity(client *rest_management_api_client.ZitiEdgeManagement, identityID string) *sdk_config.Config { +func enrollIdentity(client *rest_management_api_client.ZitiEdgeManagement, identityID string) *ziti.Config { // Get the identity object params := &identity.DetailIdentityParams{ Context: context.Background(), @@ -447,11 +446,14 @@ func Dial(_ context.Context, _ string, addr string) (net.Conn, error) { } func createZitifiedHttpClient(idFile string) http.Client { - cfg, err := sdk_config.NewFromFile(idFile) + cfg, err := ziti.NewConfigFromFile(idFile) + if err != nil { + panic(err) + } + zitiContext, err = ziti.NewContext(cfg) if err != nil { panic(err) } - zitiContext = ziti.NewContextWithConfig(cfg) zitiTransport := http.DefaultTransport.(*http.Transport).Clone() // copy default transport zitiTransport.DialContext = Dial //zitiDialContext.Dial return http.Client{Transport: zitiTransport} From 26b74b1919e32bc07eb5ee54e1421e17b015bdd1 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 27 Apr 2023 14:14:02 -0400 Subject: [PATCH 31/51] fix network-tests --- network-tests/go.mod | 89 +++++++++++++++++++++++--------------------- network-tests/go.sum | 83 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+), 43 deletions(-) diff --git a/network-tests/go.mod b/network-tests/go.mod index 5705fc89d..4259fd00e 100644 --- a/network-tests/go.mod +++ b/network-tests/go.mod @@ -4,30 +4,30 @@ go 1.19 require ( github.com/openziti/fablab v0.4.23 - github.com/openziti/sdk-golang v0.18.26 + github.com/openziti/sdk-golang v0.20.2 github.com/openziti/zitilab v0.1.21 github.com/sirupsen/logrus v1.9.0 - github.com/spf13/cobra v1.6.1 + github.com/spf13/cobra v1.7.0 ) require ( github.com/AppsFlyer/go-sundheit v0.5.0 // indirect github.com/Jeffail/gabs v1.4.0 // indirect - github.com/Jeffail/gabs/v2 v2.6.1 // indirect + github.com/Jeffail/gabs/v2 v2.7.0 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/MichaelMure/go-term-markdown v0.1.4 // indirect github.com/MichaelMure/go-term-text v0.3.1 // indirect github.com/alecthomas/chroma v0.10.0 // indirect - github.com/andybalholm/brotli v1.0.4 // indirect + github.com/andybalholm/brotli v1.0.5 // indirect github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd // indirect - github.com/armon/go-metrics v0.3.10 // indirect - github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect + github.com/armon/go-metrics v0.4.1 // indirect + github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/aws/aws-sdk-go v1.44.118 // indirect github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c // indirect github.com/blang/semver v3.5.1+incompatible // indirect github.com/boltdb/bolt v1.3.1 // indirect github.com/c-bata/go-prompt v0.2.6 // indirect - github.com/cenkalti/backoff/v4 v4.2.0 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/coreos/go-iptables v0.6.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/dgoogauth v0.0.0-20190221195224-5a805980a5f3 // indirect @@ -43,7 +43,7 @@ require ( github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect github.com/go-acme/lego/v4 v4.2.0 // indirect - github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-openapi/analysis v0.21.4 // indirect @@ -51,9 +51,9 @@ require ( github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/loads v0.21.2 // indirect - github.com/go-openapi/runtime v0.25.0 // indirect - github.com/go-openapi/spec v0.20.8 // indirect - github.com/go-openapi/strfmt v0.21.3 // indirect + github.com/go-openapi/runtime v0.26.0 // indirect + github.com/go-openapi/spec v0.20.9 // indirect + github.com/go-openapi/strfmt v0.21.7 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/go-openapi/validate v0.22.1 // indirect github.com/go-resty/resty/v2 v2.7.0 // indirect @@ -65,13 +65,13 @@ require ( github.com/google/uuid v1.3.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/hashicorp/go-hclog v1.4.0 // indirect + github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-msgpack v0.5.5 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect - github.com/hashicorp/golang-lru/v2 v2.0.1 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/raft v1.3.11 // indirect + github.com/hashicorp/raft v1.5.0 // indirect github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jedib0t/go-pretty/v6 v6.4.4 // indirect @@ -80,46 +80,48 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/josharian/native v1.0.0 // indirect - github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6 // indirect + github.com/kataras/go-events v0.0.3 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 // indirect github.com/kr/fs v0.1.0 // indirect github.com/kyokomi/emoji/v2 v2.2.11 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/lucsky/cuid v1.2.1 // indirect - github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de // indirect + github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a // indirect github.com/magiconair/properties v1.8.5 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.18 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/mdlayher/netlink v1.7.1 // indirect github.com/mdlayher/socket v0.4.0 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4 // indirect - github.com/michaelquigley/pfxlog v0.6.9 // indirect - github.com/miekg/dns v1.1.50 // indirect + github.com/michaelquigley/pfxlog v0.6.10 // indirect + github.com/miekg/dns v1.1.53 // indirect github.com/miekg/pkcs11 v1.1.1 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/natefinch/lumberjack v2.0.0+incompatible // indirect github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce // indirect - github.com/netfoundry/secretstream v0.1.2 // indirect + github.com/netfoundry/secretstream v0.1.5 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/openziti/agent v1.0.8 // indirect - github.com/openziti/channel/v2 v2.0.26 // indirect - github.com/openziti/edge v0.24.95 // indirect - github.com/openziti/fabric v0.22.7 // indirect - github.com/openziti/foundation/v2 v2.0.10 // indirect - github.com/openziti/identity v1.0.30 // indirect - github.com/openziti/jwks v1.0.2 // indirect - github.com/openziti/metrics v1.2.3 // indirect + github.com/openziti/channel/v2 v2.0.62 // indirect + github.com/openziti/edge v0.24.251 // indirect + github.com/openziti/edge-api v0.25.18 // indirect + github.com/openziti/fabric v0.23.1 // indirect + github.com/openziti/foundation/v2 v2.0.21 // indirect + github.com/openziti/identity v1.0.47 // indirect + github.com/openziti/jwks v1.0.3 // indirect + github.com/openziti/metrics v1.2.19 // indirect github.com/openziti/runzmd v1.0.9 // indirect - github.com/openziti/storage v0.1.33 // indirect - github.com/openziti/transport/v2 v2.0.50 // indirect + github.com/openziti/secretstream v0.1.6 // indirect + github.com/openziti/storage v0.2.0 // indirect + github.com/openziti/transport/v2 v2.0.75 // indirect github.com/openziti/x509-claims v1.0.3 // indirect github.com/openziti/xweb/v2 v2.0.2 // indirect github.com/openziti/ziti v0.27.2 // indirect @@ -136,7 +138,8 @@ require ( github.com/rivo/uniseg v0.4.3 // indirect github.com/rodaine/table v1.0.1 // indirect github.com/russross/blackfriday v1.5.2 // indirect - github.com/shirou/gopsutil/v3 v3.23.1 // indirect + github.com/shirou/gopsutil/v3 v3.23.3 // indirect + github.com/shoenig/go-m1cpu v0.1.5 // indirect github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect github.com/speps/go-hashids v2.0.0+incompatible // indirect github.com/spf13/afero v1.6.0 // indirect @@ -144,7 +147,7 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.10.0 // indirect - github.com/stretchr/testify v1.8.1 // indirect + github.com/stretchr/testify v1.8.2 // indirect github.com/subosito/gotenv v1.2.0 // indirect github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/tklauser/go-sysconf v0.3.11 // indirect @@ -156,21 +159,21 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect go.etcd.io/bbolt v1.3.7 // indirect - go.mongodb.org/mongo-driver v1.11.1 // indirect + go.mongodb.org/mongo-driver v1.11.4 // indirect go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect - go.opentelemetry.io/otel v1.11.2 // indirect - go.opentelemetry.io/otel/trace v1.11.2 // indirect - golang.org/x/crypto v0.5.0 // indirect - golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b // indirect + go.opentelemetry.io/otel v1.14.0 // indirect + go.opentelemetry.io/otel/trace v1.14.0 // indirect + golang.org/x/crypto v0.8.0 // indirect + golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 // indirect golang.org/x/image v0.5.0 // indirect - golang.org/x/mod v0.6.0 // indirect - golang.org/x/net v0.7.0 // indirect + golang.org/x/mod v0.8.0 // indirect + golang.org/x/net v0.9.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/term v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect - golang.org/x/tools v0.2.0 // indirect - google.golang.org/protobuf v1.28.1 // indirect + golang.org/x/sys v0.7.0 // indirect + golang.org/x/term v0.7.0 // indirect + golang.org/x/text v0.9.0 // indirect + golang.org/x/tools v0.6.0 // indirect + google.golang.org/protobuf v1.30.0 // indirect gopkg.in/AlecAivazis/survey.v1 v1.8.7 // indirect gopkg.in/ini.v1 v1.66.2 // indirect gopkg.in/resty.v1 v1.12.0 // indirect diff --git a/network-tests/go.sum b/network-tests/go.sum index 5146eb36f..3eaff342c 100644 --- a/network-tests/go.sum +++ b/network-tests/go.sum @@ -62,6 +62,7 @@ github.com/Jeffail/gabs v1.4.0 h1://5fYRRTq1edjfIrQGvdkcd22pkYUrHZ5YC/H2GJVAo= github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= github.com/Jeffail/gabs/v2 v2.6.1 h1:wwbE6nTQTwIMsMxzi6XFQQYRZ6wDc1mSdxoAN+9U4Gk= github.com/Jeffail/gabs/v2 v2.6.1/go.mod h1:xCn81vdHKxFUuWWAaD5jCTQDNPBMh5pPs9IJ+NcziBI= +github.com/Jeffail/gabs/v2 v2.7.0/go.mod h1:dp5ocw1FvBBQYssgHsG7I1WYsiLRtkUaB1FEtSwvNUw= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/MichaelMure/go-term-markdown v0.1.4 h1:Ir3kBXDUtOX7dEv0EaQV8CNPpH+T7AfTh0eniMOtNcs= @@ -90,6 +91,7 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/aliyun/alibaba-cloud-sdk-go v1.61.458/go.mod h1:pUKYbK5JQ+1Dfxk80P0qxGqe5dkxDoabbZS7zOcouyA= github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd h1:fjJY1LimH0wVCvOHLX35SCX/MbWomAglET1H2kvz7xc= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= @@ -100,10 +102,13 @@ github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQh github.com/armon/go-metrics v0.3.8/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8Uo= github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= +github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/aws/aws-sdk-go v1.30.20/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.44.118 h1:FJOqIRTukf7+Ulp047/k7JB6eqMXNnj7eb+coORThHQ= github.com/aws/aws-sdk-go v1.44.118/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= @@ -124,6 +129,8 @@ github.com/c-bata/go-prompt v0.2.6/go.mod h1:/LMAke8wD2FsNu9EXNdHxNLbd9MedkPnCdf github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -214,6 +221,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= @@ -239,14 +248,20 @@ github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8en github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= github.com/go-openapi/runtime v0.25.0 h1:7yQTCdRbWhX8vnIjdzU8S00tBYf7Sg71EBeorlPHvhc= github.com/go-openapi/runtime v0.25.0/go.mod h1:Ux6fikcHXyyob6LNWxtE96hWwjBPYF0DXgVFuMTneOs= +github.com/go-openapi/runtime v0.26.0 h1:HYOFtG00FM1UvqrcxbEJg/SwvDRvYLQKGhw2zaQjTcc= +github.com/go-openapi/runtime v0.26.0/go.mod h1:QgRGeZwrUcSHdeh4Ka9Glvo0ug1LC5WyE+EV88plZrQ= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/spec v0.20.8 h1:ubHmXNY3FCIOinT8RNrrPfGc9t7I1qhPtdOGoG2AxRU= github.com/go-openapi/spec v0.20.8/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= +github.com/go-openapi/spec v0.20.9 h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8= +github.com/go-openapi/spec v0.20.9/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= github.com/go-openapi/strfmt v0.21.3 h1:xwhj5X6CjXEZZHMWy1zKJxvW9AfHC9pkyUjLvHtKG7o= github.com/go-openapi/strfmt v0.21.3/go.mod h1:k+RzNO0Da+k3FrrynSNN8F7n/peCmQQqbbXjtDfvmGg= +github.com/go-openapi/strfmt v0.21.7 h1:rspiXgNWgeUzhjo1YU01do6qsahtJNByjLVbPLNHb8k= +github.com/go-openapi/strfmt v0.21.7/go.mod h1:adeGTkxE44sPyLk0JV235VQAO/ZXUr8KAzYjclFs3ew= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= @@ -389,6 +404,7 @@ github.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrj github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v1.4.0 h1:ctuWFGrhFha8BnnzxqeRGidlEcQkDyL5u8J8t5eA11I= github.com/hashicorp/go-hclog v1.4.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -411,6 +427,7 @@ github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.1 h1:5pv5N1lT1fjLg2VQ5KWc7kmucp2x/kvFOnxuVTqZ6x4= github.com/hashicorp/golang-lru/v2 v2.0.1/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/golang-lru/v2 v2.0.2/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= @@ -419,6 +436,7 @@ github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2p github.com/hashicorp/raft v1.1.0/go.mod h1:4Ak7FSPnuvmb0GV6vgIAJ4vYT4bek9bb6Q+7HVbyzqM= github.com/hashicorp/raft v1.3.11 h1:p3v6gf6l3S797NnK5av3HcczOC1T5CLoaRvg0g9ys4A= github.com/hashicorp/raft v1.3.11/go.mod h1:J8naEwc6XaaCfts7+28whSeRvCqTd6e20BlCU3LtEO4= +github.com/hashicorp/raft v1.5.0/go.mod h1:pKHB2mf/Y25u3AHNSXVRv+yT+WAnmeTX0BwVppVQV+M= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 h1:CO8dBMLH6dvE1jTn/30ZZw3iuPsNfajshWoJTnVc5cc= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0/go.mod h1:nTakvJ4XYq45UXtn0DbwR4aU9ZdjlnIenpbs6Cd+FM0= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= @@ -462,6 +480,7 @@ github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaR github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6 h1:XXnySN8wVet8S4UlcXHjh8Oa7618Eu7z92HxU5cIfhA= github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6/go.mod h1:6IxMW59VJdEIqj3bjFGJvGLRdb0WHtrlxPZy9qXctcg= +github.com/kataras/go-events v0.0.3/go.mod h1:bFBgtzwwzrag7kQmGuU1ZaVxhK2qseYPQomXoVEMsj4= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 h1:WjT3fLi9n8YWh/Ih8Q1LHAPsTqGddPcHqscN+PJ3i68= @@ -499,6 +518,8 @@ github.com/lucsky/cuid v1.2.1/go.mod h1:QaaJqckboimOmhRSJXSx/+IT+VTfxfPGSo/6mfgU github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de h1:V53FWzU6KAZVi1tPp5UIsMoUWJ2/PNwYIDXnu7QuBCE= github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= +github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a h1:N9zuLhTvBSRt0gWSiJswwQ2HqDmtX/ZCDJURnKUt1Ik= +github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -528,6 +549,8 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= +github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= @@ -551,10 +574,13 @@ github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4 h1:O0aAES+Hu github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4/go.mod h1:ZgenLagNkpruEGzNeXiQH9RtZedSLKw1WlDTJWPZzpk= github.com/michaelquigley/pfxlog v0.6.9 h1:K/weH6ARu58aEDQi0ccinItvV958CeO6Ri4jqeFwd/w= github.com/michaelquigley/pfxlog v0.6.9/go.mod h1:D2vg1tPyPdSXWWkSnGk6Fomwh5b3clwVJDUh71tq8Sk= +github.com/michaelquigley/pfxlog v0.6.10 h1:IbC/H3MmSDcPlQHF1UZPQU13Dkrs0+ycWRyQd2ihnjw= +github.com/michaelquigley/pfxlog v0.6.10/go.mod h1:gEiNTfKEX6cJHSwRpOuqBpc8oYrlhMiDK/xMk/gV7D0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= +github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= @@ -586,6 +612,7 @@ github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:ifHPsLnd github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= github.com/netfoundry/secretstream v0.1.2 h1:NgqrYytDnjKbOfWI29TT0SJM+RwB3yf9MIkJVJaU+J0= github.com/netfoundry/secretstream v0.1.2/go.mod h1:uasYkYSp0MmNSlKOWJ2sVzxPms8e58TS4ENq4yro86k= +github.com/netfoundry/secretstream v0.1.5/go.mod h1:N6Mvl9Lk8xs84hFS9qZfjcJWiXmpzqaXW/L9W0JYfXY= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nrdcg/auroradns v1.0.1/go.mod h1:y4pc0i9QXYlFCWrhWrUSIETnZgrf4KuwjDIWmmXo3JI= github.com/nrdcg/desec v0.5.0/go.mod h1:2ejvMazkav1VdDbv2HeQO7w+Ta1CGHqzQr27ZBYTuEQ= @@ -616,28 +643,50 @@ github.com/openziti/agent v1.0.8 h1:qB4zQO9dz3PL8qbeyzCWbwTrtHZPEZlYtjkJJ78SJPo= github.com/openziti/agent v1.0.8/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= github.com/openziti/channel/v2 v2.0.26 h1:IIEnno26FuywcyCwCie1U7OHoB8HzuG95EzEnvtKmio= github.com/openziti/channel/v2 v2.0.26/go.mod h1:zZO0bgVYY9FCDs2EMRakDl6wIfyOWuzgPzPL8EvQ5Ks= +github.com/openziti/channel/v2 v2.0.62 h1:WmNYAugoyQ2HFu2VEhOH4WExzXsX6+dzSQDzNfHf5M8= +github.com/openziti/channel/v2 v2.0.62/go.mod h1:TS2FJs1GuCZXUfSFfptrNWKeTuQRO7YJ9K7C2jWMznA= github.com/openziti/edge v0.24.95 h1:Lj7ycWVOXbqt3TK6NSGPWXj5bp3/5rX7rA+bR5wA8Nc= github.com/openziti/edge v0.24.95/go.mod h1:nVamtrBekK372q8bbKK/D6t0W7LBqQ+Miu0YE1u3od4= +github.com/openziti/edge v0.24.251 h1:F7m8U3UQLEC53s3t/UXGsAKlSar8qY+BubD1Ek01OcA= +github.com/openziti/edge v0.24.251/go.mod h1:Qoj6QDOxOtBZf36CHDu8FLDwpiTY6Ra7xcFmVsRFVM0= +github.com/openziti/edge-api v0.25.18 h1:LEiDz7MF4R9ZQNHwG34oTy4XCUlX4+kXRzvNYhp6e08= +github.com/openziti/edge-api v0.25.18/go.mod h1:m4fMjlxnU1Yq9rsBYNKMs1B3BxLZlpo/V3iy42H/Bkg= github.com/openziti/fablab v0.4.23 h1:GKbSceX8hphBfY0RtYkrq7LTilnV61w4JCb4hh70Zio= github.com/openziti/fablab v0.4.23/go.mod h1:ff6XCI4YryKcyhblK3zNVkiEH0JXDhO6ZkHQN4N0wDE= github.com/openziti/fabric v0.22.7 h1:o0k/QnCpVZPiC77fh/NoUVCoeQNhfBm4oOICcJsdkWc= github.com/openziti/fabric v0.22.7/go.mod h1:NITYnGTCeu0ENixTd7qXFzGyIDm5GkyJhxKYTnmFzjk= +github.com/openziti/fabric v0.23.1/go.mod h1:p5EI0s0LvNi6HipLR+PWDon89C3dhfyX/jac/3cwmpA= github.com/openziti/foundation/v2 v2.0.10 h1:IeOkcPbgBpBTw4JrWz8s9Z76vO/m+i2uIE0cMZ0C2DM= github.com/openziti/foundation/v2 v2.0.10/go.mod h1:Z0gnQsGJb/H/B+pixLtmCIpw1dBllD4QoT6LeD35WzA= +github.com/openziti/foundation/v2 v2.0.21 h1:3EDDmSunsbd2DlULuY/vqj12LHRZOknH/m3lf6Ws5Nw= +github.com/openziti/foundation/v2 v2.0.21/go.mod h1:02GW3jFSSlfLwYwuTIldP/S4w7eCKqlzL6ajFSGHNPA= github.com/openziti/identity v1.0.30 h1:N2WDdK7MpeXuHCRjMo6N/QMtUXUkenUEqfKWXFNu2oE= github.com/openziti/identity v1.0.30/go.mod h1:SPZAaqvDToS2jtae4D2fvO9IsR6G6FKNZ8WTqAwKKJE= +github.com/openziti/identity v1.0.47 h1:Zc1wL4yMq6hcmbgNR6d3gSkGCiK3IJYd9i4obBNBMPw= +github.com/openziti/identity v1.0.47/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= github.com/openziti/jwks v1.0.2 h1:32BGXIAnefS+v7uXKPb1x8/cQ7srek6Ai06dsrMTY4E= github.com/openziti/jwks v1.0.2/go.mod h1:KwO0x9FBG0aoJS5f6nH5xeHoplyR1H143SMI9kF0mC8= +github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ= github.com/openziti/metrics v1.2.3 h1:h9+mSU673QLSMOb3YibD1vNgE0yIDZ5leiUqDwN5szE= github.com/openziti/metrics v1.2.3/go.mod h1:jK8BfZ9nXMhO+LPcUPpN/sebrLfIeF4uaHlm5JIF7BY= +github.com/openziti/metrics v1.2.19 h1:gQO3e2lUotRHBdGUXYBPWMIErIyyF5hw0EakwQbJzuM= +github.com/openziti/metrics v1.2.19/go.mod h1:ovvxTpDBxGLcVLHgPTFFvwT4ur8p4Z76BPUhIE5iwqc= github.com/openziti/runzmd v1.0.9 h1:gQnZT5cACuVpcBBBHWIaN9Vmwv8KUNa7LBLG8Xi13/U= github.com/openziti/runzmd v1.0.9/go.mod h1:s6amx7gbzewUqlnq8dcvJ50eb0ryjQtknPYubOHuIug= github.com/openziti/sdk-golang v0.18.26 h1:Wk2s88R9b5SeP3D3uEpqE31ffY20Y1v2ZSyYfgud/BA= github.com/openziti/sdk-golang v0.18.26/go.mod h1:QCoDwqjGm8qxcIDboY+jglfjZVdz8gREquRMpX7jz8I= +github.com/openziti/sdk-golang v0.20.0/go.mod h1:5deFxXx5JWeOVCfRkyi6EfeALbhQ7avx2hymLJj9Q98= +github.com/openziti/sdk-golang v0.20.2 h1:HTwWN7RmWrIop+AspcR2gVr13KYm4s3KS2RvgPhmVWs= +github.com/openziti/sdk-golang v0.20.2/go.mod h1:QE22lxF7REJXuggFCPPiKrlttgwrqSPEvUb0ka+jtjk= +github.com/openziti/secretstream v0.1.6 h1:TbpTwW/lc/0kuvaoRNjpiyebxh2Hyx8XSTB269QtHN4= +github.com/openziti/secretstream v0.1.6/go.mod h1:Gc6fhaDC46UUvwJD4ogbYji22YSdz3fe8bno+BFIpcE= github.com/openziti/storage v0.1.33 h1:c3jdiJPIthYC51Ye2VOBGuz3g1DGVzmjGIlgPs1BcOg= github.com/openziti/storage v0.1.33/go.mod h1:G4swa9DU8oG+B+tv4X7X5QjtI8nxbXhEUKlDbwNowBY= +github.com/openziti/storage v0.2.0/go.mod h1:rJjLObUtJBNcm7MvnTr4DHCXZ+ppg0OMeoJ5tfi1aJI= github.com/openziti/transport/v2 v2.0.50 h1:bMk0CeQhg61vaCpAUANlu+hZTqyZSa7IFX3ZYFi1tns= github.com/openziti/transport/v2 v2.0.50/go.mod h1:I3qtYJhHzEzydqqdIq8IZStwPV7ybynK0mJP17MB/q0= +github.com/openziti/transport/v2 v2.0.75 h1:KZmnyRH1SOXSI6DXqDRsbRxRJE2cWv5EDCiQqC+R+hQ= +github.com/openziti/transport/v2 v2.0.75/go.mod h1:xMoDhxk9FFQoVyh4YL2h1hOshE5Aqlabd4mctmK1TWU= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= @@ -728,6 +777,12 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shirou/gopsutil/v3 v3.23.1 h1:a9KKO+kGLKEvcPIs4W62v0nu3sciVDOOOPUD0Hz7z/4= github.com/shirou/gopsutil/v3 v3.23.1/go.mod h1:NN6mnm5/0k8jw4cBfCnJtr5L7ErOTg18tMNpgFkn0hA= +github.com/shirou/gopsutil/v3 v3.23.3 h1:Syt5vVZXUDXPEXpIBt5ziWsJ4LdSAAxF4l/xZeQgSEE= +github.com/shirou/gopsutil/v3 v3.23.3/go.mod h1:lSBNN6t3+D6W5e5nXTxc8KIMMVxAcS+6IJlffjRRlMU= +github.com/shoenig/go-m1cpu v0.1.4/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= +github.com/shoenig/go-m1cpu v0.1.5 h1:LF57Z/Fpb/WdGLjt2HZilNnmZOxg/q2bSKTQhgbrLrQ= +github.com/shoenig/go-m1cpu v0.1.5/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= +github.com/shoenig/test v0.6.3/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -753,6 +808,7 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3 github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -780,6 +836,7 @@ github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= @@ -829,6 +886,8 @@ go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4x go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= go.mongodb.org/mongo-driver v1.11.1 h1:QP0znIRTuL0jf1oBQoAoM0C6ZJfBK4kx0Uumtv1A7w8= go.mongodb.org/mongo-driver v1.11.1/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= +go.mongodb.org/mongo-driver v1.11.4 h1:4ayjakA013OdpGyL2K3ZqylTac/rMjrJOMZ1EHizXas= +go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -842,9 +901,13 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/otel v1.11.2 h1:YBZcQlsVekzFsFbjygXMOXSs6pialIZxcjfO/mBDmR0= go.opentelemetry.io/otel v1.11.2/go.mod h1:7p4EUV+AqgdlNV9gL97IgUZiVR3yrFXYo53f9BM3tRI= +go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= +go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= go.opentelemetry.io/otel/sdk v1.11.1 h1:F7KmQgoHljhUuJyA+9BiU+EkJfyX5nVVF4wyzWZpKxs= go.opentelemetry.io/otel/trace v1.11.2 h1:Xf7hWSF2Glv0DE3MH7fBHvtpSBsjcBUe5MYAmZM/+y0= go.opentelemetry.io/otel/trace v1.11.2/go.mod h1:4N+yC7QEz7TTsG9BSRLNAa63eg5E06ObSbKPmxQ/pKA= +go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= +go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= @@ -870,8 +933,11 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -884,6 +950,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b h1:EqBVA+nNsObCwQoBEHy4wLU0pi7i8a4AL3pbItPdPkE= golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 h1:5llv2sWeaMSnA3w2kS57ouQQ4pudlXrR0dCgw51QK9o= +golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -916,6 +984,7 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I= golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -968,8 +1037,10 @@ golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1076,14 +1147,21 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1093,8 +1171,10 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1162,6 +1242,7 @@ golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyj golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE= golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1273,6 +1354,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/AlecAivazis/survey.v1 v1.8.7 h1:oBJqtgsyBLg9K5FK9twNUbcPnbCPoh+R9a+7nag3qJM= gopkg.in/AlecAivazis/survey.v1 v1.8.7/go.mod h1:iBNOmqKz/NUbZx3bA+4hAGLRC7fSK7tgtVDT4tB22XA= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= From 9567a215e83c87df225f0a741ae8197d0ac01f50 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 27 Apr 2023 14:19:52 -0400 Subject: [PATCH 32/51] go mod tidy, use parent insteado of fixed version --- network-tests/go.mod | 19 +++--- network-tests/go.sum | 149 ++++++++++++------------------------------- 2 files changed, 52 insertions(+), 116 deletions(-) diff --git a/network-tests/go.mod b/network-tests/go.mod index 4259fd00e..92d75b04d 100644 --- a/network-tests/go.mod +++ b/network-tests/go.mod @@ -2,6 +2,8 @@ module github.com/openziti/ziti/network-tests go 1.19 +replace github.com/openziti/ziti => ../ + require ( github.com/openziti/fablab v0.4.23 github.com/openziti/sdk-golang v0.20.2 @@ -33,12 +35,12 @@ require ( github.com/dgryski/dgoogauth v0.0.0-20190221195224-5a805980a5f3 // indirect github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663 // indirect github.com/disintegration/imaging v1.6.2 // indirect - github.com/dlclark/regexp2 v1.8.0 // indirect + github.com/dlclark/regexp2 v1.9.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/ef-ds/deque v1.0.4 // indirect github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/fatih/color v1.14.1 // indirect + github.com/fatih/color v1.15.0 // indirect github.com/felixge/httpsnoop v1.0.1 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect @@ -60,7 +62,7 @@ require ( github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c // indirect + github.com/gomarkdown/markdown v0.0.0-20230322041520-c84983bdbf2a // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect @@ -84,7 +86,7 @@ require ( github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 // indirect github.com/kr/fs v0.1.0 // indirect - github.com/kyokomi/emoji/v2 v2.2.11 // indirect + github.com/kyokomi/emoji/v2 v2.2.12 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/lucsky/cuid v1.2.1 // indirect github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a // indirect @@ -109,7 +111,7 @@ require ( github.com/oklog/ulid v1.3.1 // indirect github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/openziti/agent v1.0.8 // indirect + github.com/openziti/agent v1.0.10 // indirect github.com/openziti/channel/v2 v2.0.62 // indirect github.com/openziti/edge v0.24.251 // indirect github.com/openziti/edge-api v0.25.18 // indirect @@ -118,7 +120,7 @@ require ( github.com/openziti/identity v1.0.47 // indirect github.com/openziti/jwks v1.0.3 // indirect github.com/openziti/metrics v1.2.19 // indirect - github.com/openziti/runzmd v1.0.9 // indirect + github.com/openziti/runzmd v1.0.20 // indirect github.com/openziti/secretstream v0.1.6 // indirect github.com/openziti/storage v0.2.0 // indirect github.com/openziti/transport/v2 v2.0.75 // indirect @@ -134,8 +136,9 @@ require ( github.com/pkg/term v1.2.0-beta.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect + github.com/rabbitmq/amqp091-go v1.8.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/rivo/uniseg v0.4.3 // indirect + github.com/rivo/uniseg v0.4.4 // indirect github.com/rodaine/table v1.0.1 // indirect github.com/russross/blackfriday v1.5.2 // indirect github.com/shirou/gopsutil/v3 v3.23.3 // indirect @@ -165,7 +168,7 @@ require ( go.opentelemetry.io/otel/trace v1.14.0 // indirect golang.org/x/crypto v0.8.0 // indirect golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 // indirect - golang.org/x/image v0.5.0 // indirect + golang.org/x/image v0.7.0 // indirect golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.9.0 // indirect golang.org/x/sync v0.1.0 // indirect diff --git a/network-tests/go.sum b/network-tests/go.sum index 3eaff342c..6e36a6aae 100644 --- a/network-tests/go.sum +++ b/network-tests/go.sum @@ -60,8 +60,7 @@ github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3 github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Jeffail/gabs v1.4.0 h1://5fYRRTq1edjfIrQGvdkcd22pkYUrHZ5YC/H2GJVAo= github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= -github.com/Jeffail/gabs/v2 v2.6.1 h1:wwbE6nTQTwIMsMxzi6XFQQYRZ6wDc1mSdxoAN+9U4Gk= -github.com/Jeffail/gabs/v2 v2.6.1/go.mod h1:xCn81vdHKxFUuWWAaD5jCTQDNPBMh5pPs9IJ+NcziBI= +github.com/Jeffail/gabs/v2 v2.7.0 h1:Y2edYaTcE8ZpRsR2AtmPu5xQdFDIthFG0jYhu5PY8kg= github.com/Jeffail/gabs/v2 v2.7.0/go.mod h1:dp5ocw1FvBBQYssgHsG7I1WYsiLRtkUaB1FEtSwvNUw= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= @@ -89,8 +88,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/aliyun/alibaba-cloud-sdk-go v1.61.458/go.mod h1:pUKYbK5JQ+1Dfxk80P0qxGqe5dkxDoabbZS7zOcouyA= -github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd h1:fjJY1LimH0wVCvOHLX35SCX/MbWomAglET1H2kvz7xc= @@ -100,13 +98,10 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg= github.com/armon/go-metrics v0.3.8/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= -github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8Uo= -github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= +github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= -github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/aws/aws-sdk-go v1.30.20/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= @@ -127,8 +122,6 @@ github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBW github.com/c-bata/go-prompt v0.2.6 h1:POP+nrHE+DfLYx370bedwNhsqmpCUynWPxuHi0C5vZI= github.com/c-bata/go-prompt v0.2.6/go.mod h1:/LMAke8wD2FsNu9EXNdHxNLbd9MedkPnCdfpU9wwHfY= github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= -github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= -github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -168,8 +161,8 @@ github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1 github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.8.0 h1:rJD5HeGIT/2b5CDk63FVCwZA3qgYElfg+oQK7uH5pfE= -github.com/dlclark/regexp2 v1.8.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dlclark/regexp2 v1.9.0 h1:pTK/l/3qYIKaRXuHnEnIf7Y5NxfRPfpb7dis6/gdlVI= +github.com/dlclark/regexp2 v1.9.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnsimple/dnsimple-go v0.63.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -193,8 +186,8 @@ github.com/exoscale/egoscale v0.23.0/go.mod h1:hRo78jkjkCDKpivQdRBEpNYF5+cVpCJCP github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= -github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= @@ -219,8 +212,6 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= @@ -246,19 +237,14 @@ github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8enro= github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= -github.com/go-openapi/runtime v0.25.0 h1:7yQTCdRbWhX8vnIjdzU8S00tBYf7Sg71EBeorlPHvhc= -github.com/go-openapi/runtime v0.25.0/go.mod h1:Ux6fikcHXyyob6LNWxtE96hWwjBPYF0DXgVFuMTneOs= github.com/go-openapi/runtime v0.26.0 h1:HYOFtG00FM1UvqrcxbEJg/SwvDRvYLQKGhw2zaQjTcc= github.com/go-openapi/runtime v0.26.0/go.mod h1:QgRGeZwrUcSHdeh4Ka9Glvo0ug1LC5WyE+EV88plZrQ= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= -github.com/go-openapi/spec v0.20.8 h1:ubHmXNY3FCIOinT8RNrrPfGc9t7I1qhPtdOGoG2AxRU= -github.com/go-openapi/spec v0.20.8/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/spec v0.20.9 h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8= github.com/go-openapi/spec v0.20.9/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= -github.com/go-openapi/strfmt v0.21.3 h1:xwhj5X6CjXEZZHMWy1zKJxvW9AfHC9pkyUjLvHtKG7o= github.com/go-openapi/strfmt v0.21.3/go.mod h1:k+RzNO0Da+k3FrrynSNN8F7n/peCmQQqbbXjtDfvmGg= github.com/go-openapi/strfmt v0.21.7 h1:rspiXgNWgeUzhjo1YU01do6qsahtJNByjLVbPLNHb8k= github.com/go-openapi/strfmt v0.21.7/go.mod h1:adeGTkxE44sPyLk0JV235VQAO/ZXUr8KAzYjclFs3ew= @@ -340,8 +326,8 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU= -github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c h1:iyaGYbCmcYK0Ja9a3OUa2Fo+EaN0cbLu0eKpBwPFzc8= -github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= +github.com/gomarkdown/markdown v0.0.0-20230322041520-c84983bdbf2a h1:AWZzzFrqyjYlRloN6edwTLTUbKxf5flLXNuTBDm3Ews= +github.com/gomarkdown/markdown v0.0.0-20230322041520-c84983bdbf2a/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -402,8 +388,7 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v1.4.0 h1:ctuWFGrhFha8BnnzxqeRGidlEcQkDyL5u8J8t5eA11I= -github.com/hashicorp/go-hclog v1.4.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= @@ -425,8 +410,7 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru/v2 v2.0.1 h1:5pv5N1lT1fjLg2VQ5KWc7kmucp2x/kvFOnxuVTqZ6x4= -github.com/hashicorp/golang-lru/v2 v2.0.1/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/golang-lru/v2 v2.0.2 h1:Dwmkdr5Nc/oBiXgJS3CDHNhJtIHkuZ3DZF5twqnfBdU= github.com/hashicorp/golang-lru/v2 v2.0.2/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= @@ -434,8 +418,7 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/raft v1.1.0/go.mod h1:4Ak7FSPnuvmb0GV6vgIAJ4vYT4bek9bb6Q+7HVbyzqM= -github.com/hashicorp/raft v1.3.11 h1:p3v6gf6l3S797NnK5av3HcczOC1T5CLoaRvg0g9ys4A= -github.com/hashicorp/raft v1.3.11/go.mod h1:J8naEwc6XaaCfts7+28whSeRvCqTd6e20BlCU3LtEO4= +github.com/hashicorp/raft v1.5.0 h1:uNs9EfJ4FwiArZRxxfd/dQ5d33nV31/CdCHArH89hT8= github.com/hashicorp/raft v1.5.0/go.mod h1:pKHB2mf/Y25u3AHNSXVRv+yT+WAnmeTX0BwVppVQV+M= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 h1:CO8dBMLH6dvE1jTn/30ZZw3iuPsNfajshWoJTnVc5cc= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0/go.mod h1:nTakvJ4XYq45UXtn0DbwR4aU9ZdjlnIenpbs6Cd+FM0= @@ -447,7 +430,6 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jedib0t/go-pretty/v6 v6.4.4 h1:N+gz6UngBPF4M288kiMURPHELDMIhF/Em35aYuKrsSc= @@ -478,8 +460,7 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6 h1:XXnySN8wVet8S4UlcXHjh8Oa7618Eu7z92HxU5cIfhA= -github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6/go.mod h1:6IxMW59VJdEIqj3bjFGJvGLRdb0WHtrlxPZy9qXctcg= +github.com/kataras/go-events v0.0.3 h1:o5YK53uURXtrlg7qE/vovxd/yKOJcLuFtPQbf1rYMC4= github.com/kataras/go-events v0.0.3/go.mod h1:bFBgtzwwzrag7kQmGuU1ZaVxhK2qseYPQomXoVEMsj4= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= @@ -504,8 +485,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kyokomi/emoji/v2 v2.2.8/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= -github.com/kyokomi/emoji/v2 v2.2.11 h1:Pf/ZWVTbnAVkHOLJLWjPxM/FmgyPe+d85cv/OLP5Yus= -github.com/kyokomi/emoji/v2 v2.2.11/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= +github.com/kyokomi/emoji/v2 v2.2.12 h1:sSVA5nH9ebR3Zji1o31wu3yOwD1zKXQA2z0zUyeit60= +github.com/kyokomi/emoji/v2 v2.2.12/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/linode/linodego v0.21.0/go.mod h1:UTpq1JUZD0CZsJ8rt+0CRkqbzrp1MbGakVPt2DXY5Mk= @@ -516,8 +497,6 @@ github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i github.com/lucsky/cuid v1.2.1 h1:MtJrL2OFhvYufUIn48d35QGXyeTC8tn0upumW9WwTHg= github.com/lucsky/cuid v1.2.1/go.mod h1:QaaJqckboimOmhRSJXSx/+IT+VTfxfPGSo/6mfgUfmE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de h1:V53FWzU6KAZVi1tPp5UIsMoUWJ2/PNwYIDXnu7QuBCE= -github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a h1:N9zuLhTvBSRt0gWSiJswwQ2HqDmtX/ZCDJURnKUt1Ik= github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= @@ -547,8 +526,6 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -572,14 +549,11 @@ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4 h1:O0aAES+Hu4tySETys37Xd1wMcUohr5X7yM3qaRSHKRw= github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4/go.mod h1:ZgenLagNkpruEGzNeXiQH9RtZedSLKw1WlDTJWPZzpk= -github.com/michaelquigley/pfxlog v0.6.9 h1:K/weH6ARu58aEDQi0ccinItvV958CeO6Ri4jqeFwd/w= -github.com/michaelquigley/pfxlog v0.6.9/go.mod h1:D2vg1tPyPdSXWWkSnGk6Fomwh5b3clwVJDUh71tq8Sk= github.com/michaelquigley/pfxlog v0.6.10 h1:IbC/H3MmSDcPlQHF1UZPQU13Dkrs0+ycWRyQd2ihnjw= github.com/michaelquigley/pfxlog v0.6.10/go.mod h1:gEiNTfKEX6cJHSwRpOuqBpc8oYrlhMiDK/xMk/gV7D0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= -github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= +github.com/miekg/dns v1.1.53 h1:ZBkuHr5dxHtB1caEOlZTLPo7D3L3TWckgUUs/RHfDxw= github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= @@ -610,8 +584,7 @@ github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6Yf github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce h1:TqjP/BTDrwN7zP9xyXVuLsMBXYMt6LLYi55PlrIcq8U= github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:ifHPsLndGGzvgzcaXUvzmt6LxKT4pJ+uzEhtnMt+f7A= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= -github.com/netfoundry/secretstream v0.1.2 h1:NgqrYytDnjKbOfWI29TT0SJM+RwB3yf9MIkJVJaU+J0= -github.com/netfoundry/secretstream v0.1.2/go.mod h1:uasYkYSp0MmNSlKOWJ2sVzxPms8e58TS4ENq4yro86k= +github.com/netfoundry/secretstream v0.1.5 h1:iQ4brqUeZO7xNlSpwZDhekPW8d5LlRyHwvvevBOP1IM= github.com/netfoundry/secretstream v0.1.5/go.mod h1:N6Mvl9Lk8xs84hFS9qZfjcJWiXmpzqaXW/L9W0JYfXY= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nrdcg/auroradns v1.0.1/go.mod h1:y4pc0i9QXYlFCWrhWrUSIETnZgrf4KuwjDIWmmXo3JI= @@ -639,60 +612,40 @@ github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openziti/agent v1.0.8 h1:qB4zQO9dz3PL8qbeyzCWbwTrtHZPEZlYtjkJJ78SJPo= -github.com/openziti/agent v1.0.8/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= -github.com/openziti/channel/v2 v2.0.26 h1:IIEnno26FuywcyCwCie1U7OHoB8HzuG95EzEnvtKmio= -github.com/openziti/channel/v2 v2.0.26/go.mod h1:zZO0bgVYY9FCDs2EMRakDl6wIfyOWuzgPzPL8EvQ5Ks= +github.com/openziti/agent v1.0.10 h1:9oTmNXghlggD+O7BJdBp3PkD5kAZ1ssSC6IHZkMakzQ= +github.com/openziti/agent v1.0.10/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= github.com/openziti/channel/v2 v2.0.62 h1:WmNYAugoyQ2HFu2VEhOH4WExzXsX6+dzSQDzNfHf5M8= github.com/openziti/channel/v2 v2.0.62/go.mod h1:TS2FJs1GuCZXUfSFfptrNWKeTuQRO7YJ9K7C2jWMznA= -github.com/openziti/edge v0.24.95 h1:Lj7ycWVOXbqt3TK6NSGPWXj5bp3/5rX7rA+bR5wA8Nc= -github.com/openziti/edge v0.24.95/go.mod h1:nVamtrBekK372q8bbKK/D6t0W7LBqQ+Miu0YE1u3od4= github.com/openziti/edge v0.24.251 h1:F7m8U3UQLEC53s3t/UXGsAKlSar8qY+BubD1Ek01OcA= github.com/openziti/edge v0.24.251/go.mod h1:Qoj6QDOxOtBZf36CHDu8FLDwpiTY6Ra7xcFmVsRFVM0= github.com/openziti/edge-api v0.25.18 h1:LEiDz7MF4R9ZQNHwG34oTy4XCUlX4+kXRzvNYhp6e08= github.com/openziti/edge-api v0.25.18/go.mod h1:m4fMjlxnU1Yq9rsBYNKMs1B3BxLZlpo/V3iy42H/Bkg= github.com/openziti/fablab v0.4.23 h1:GKbSceX8hphBfY0RtYkrq7LTilnV61w4JCb4hh70Zio= github.com/openziti/fablab v0.4.23/go.mod h1:ff6XCI4YryKcyhblK3zNVkiEH0JXDhO6ZkHQN4N0wDE= -github.com/openziti/fabric v0.22.7 h1:o0k/QnCpVZPiC77fh/NoUVCoeQNhfBm4oOICcJsdkWc= -github.com/openziti/fabric v0.22.7/go.mod h1:NITYnGTCeu0ENixTd7qXFzGyIDm5GkyJhxKYTnmFzjk= +github.com/openziti/fabric v0.23.1 h1:9RFRmApJ9EGUNNwIP4OSZcgFmiBdVLTvLfYsYRID8ws= github.com/openziti/fabric v0.23.1/go.mod h1:p5EI0s0LvNi6HipLR+PWDon89C3dhfyX/jac/3cwmpA= -github.com/openziti/foundation/v2 v2.0.10 h1:IeOkcPbgBpBTw4JrWz8s9Z76vO/m+i2uIE0cMZ0C2DM= -github.com/openziti/foundation/v2 v2.0.10/go.mod h1:Z0gnQsGJb/H/B+pixLtmCIpw1dBllD4QoT6LeD35WzA= github.com/openziti/foundation/v2 v2.0.21 h1:3EDDmSunsbd2DlULuY/vqj12LHRZOknH/m3lf6Ws5Nw= github.com/openziti/foundation/v2 v2.0.21/go.mod h1:02GW3jFSSlfLwYwuTIldP/S4w7eCKqlzL6ajFSGHNPA= -github.com/openziti/identity v1.0.30 h1:N2WDdK7MpeXuHCRjMo6N/QMtUXUkenUEqfKWXFNu2oE= -github.com/openziti/identity v1.0.30/go.mod h1:SPZAaqvDToS2jtae4D2fvO9IsR6G6FKNZ8WTqAwKKJE= github.com/openziti/identity v1.0.47 h1:Zc1wL4yMq6hcmbgNR6d3gSkGCiK3IJYd9i4obBNBMPw= github.com/openziti/identity v1.0.47/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= -github.com/openziti/jwks v1.0.2 h1:32BGXIAnefS+v7uXKPb1x8/cQ7srek6Ai06dsrMTY4E= -github.com/openziti/jwks v1.0.2/go.mod h1:KwO0x9FBG0aoJS5f6nH5xeHoplyR1H143SMI9kF0mC8= +github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc= github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ= -github.com/openziti/metrics v1.2.3 h1:h9+mSU673QLSMOb3YibD1vNgE0yIDZ5leiUqDwN5szE= -github.com/openziti/metrics v1.2.3/go.mod h1:jK8BfZ9nXMhO+LPcUPpN/sebrLfIeF4uaHlm5JIF7BY= github.com/openziti/metrics v1.2.19 h1:gQO3e2lUotRHBdGUXYBPWMIErIyyF5hw0EakwQbJzuM= github.com/openziti/metrics v1.2.19/go.mod h1:ovvxTpDBxGLcVLHgPTFFvwT4ur8p4Z76BPUhIE5iwqc= -github.com/openziti/runzmd v1.0.9 h1:gQnZT5cACuVpcBBBHWIaN9Vmwv8KUNa7LBLG8Xi13/U= -github.com/openziti/runzmd v1.0.9/go.mod h1:s6amx7gbzewUqlnq8dcvJ50eb0ryjQtknPYubOHuIug= -github.com/openziti/sdk-golang v0.18.26 h1:Wk2s88R9b5SeP3D3uEpqE31ffY20Y1v2ZSyYfgud/BA= -github.com/openziti/sdk-golang v0.18.26/go.mod h1:QCoDwqjGm8qxcIDboY+jglfjZVdz8gREquRMpX7jz8I= -github.com/openziti/sdk-golang v0.20.0/go.mod h1:5deFxXx5JWeOVCfRkyi6EfeALbhQ7avx2hymLJj9Q98= +github.com/openziti/runzmd v1.0.20 h1:LzRPZRVO9AepAFzGTEsRGp2LRVtJp5vr+QOBl8KbN4w= +github.com/openziti/runzmd v1.0.20/go.mod h1:IXTk5dHAZxtqjg9WVHOiyXHqEHZdwaH5Wg80h5Ux3bQ= github.com/openziti/sdk-golang v0.20.2 h1:HTwWN7RmWrIop+AspcR2gVr13KYm4s3KS2RvgPhmVWs= github.com/openziti/sdk-golang v0.20.2/go.mod h1:QE22lxF7REJXuggFCPPiKrlttgwrqSPEvUb0ka+jtjk= github.com/openziti/secretstream v0.1.6 h1:TbpTwW/lc/0kuvaoRNjpiyebxh2Hyx8XSTB269QtHN4= github.com/openziti/secretstream v0.1.6/go.mod h1:Gc6fhaDC46UUvwJD4ogbYji22YSdz3fe8bno+BFIpcE= -github.com/openziti/storage v0.1.33 h1:c3jdiJPIthYC51Ye2VOBGuz3g1DGVzmjGIlgPs1BcOg= -github.com/openziti/storage v0.1.33/go.mod h1:G4swa9DU8oG+B+tv4X7X5QjtI8nxbXhEUKlDbwNowBY= +github.com/openziti/storage v0.2.0 h1:uwSoZQEZCzxp4+KZEi7fOWezbm0knmcCbRhni/DGHSo= github.com/openziti/storage v0.2.0/go.mod h1:rJjLObUtJBNcm7MvnTr4DHCXZ+ppg0OMeoJ5tfi1aJI= -github.com/openziti/transport/v2 v2.0.50 h1:bMk0CeQhg61vaCpAUANlu+hZTqyZSa7IFX3ZYFi1tns= -github.com/openziti/transport/v2 v2.0.50/go.mod h1:I3qtYJhHzEzydqqdIq8IZStwPV7ybynK0mJP17MB/q0= github.com/openziti/transport/v2 v2.0.75 h1:KZmnyRH1SOXSI6DXqDRsbRxRJE2cWv5EDCiQqC+R+hQ= github.com/openziti/transport/v2 v2.0.75/go.mod h1:xMoDhxk9FFQoVyh4YL2h1hOshE5Aqlabd4mctmK1TWU= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= github.com/openziti/xweb/v2 v2.0.2/go.mod h1:KQOOlnJk08EZT3TWkvDj/pbIUEVbgG0IrrNzl8gsi40= -github.com/openziti/ziti v0.27.2 h1:OPNwVOy2OzucFrThOckWxr7GaD5CTBXsY2dZA23W5a4= -github.com/openziti/ziti v0.27.2/go.mod h1:ZnXzNonbbJPd+mmkeEY6moICdfNrdOs1DD8zdWDNMcc= github.com/openziti/ziti-db-explorer v1.1.1 h1:G0eoTby+aIjjt5TxEfR+FMI2CWd4RvZFjzaIMX2lEBw= github.com/openziti/ziti-db-explorer v1.1.1/go.mod h1:h76h7Tsb+khb0v+CqYKL6ifUfJbUMjGBFU2IvupfBE4= github.com/openziti/zitilab v0.1.21 h1:ZZEq86qMvOAtzcgL1b2CqmZDnGqBH8cZ1nXcHdd3I+E= @@ -707,7 +660,6 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= @@ -752,14 +704,16 @@ github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/rabbitmq/amqp091-go v1.8.0 h1:GBFy5PpLQ5jSVVSYv8ecHGqeX7UTLYR4ItQbDCss9MM= +github.com/rabbitmq/amqp091-go v1.8.0/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc= github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= -github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= +github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rodaine/table v1.0.1 h1:U/VwCnUxlVYxw8+NJiLIuCxA/xa6jL38MY3FYysVWWQ= github.com/rodaine/table v1.0.1/go.mod h1:UVEtfBsflpeEcD56nF4F5AocNFta0ZuolpSVdPtlmP4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -775,13 +729,12 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/sacloud/libsacloud v1.36.2/go.mod h1:P7YAOVmnIn3DKHqCZcUKYUXmSwGBm3yS7IBEjKVSrjg= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil/v3 v3.23.1 h1:a9KKO+kGLKEvcPIs4W62v0nu3sciVDOOOPUD0Hz7z/4= -github.com/shirou/gopsutil/v3 v3.23.1/go.mod h1:NN6mnm5/0k8jw4cBfCnJtr5L7ErOTg18tMNpgFkn0hA= github.com/shirou/gopsutil/v3 v3.23.3 h1:Syt5vVZXUDXPEXpIBt5ziWsJ4LdSAAxF4l/xZeQgSEE= github.com/shirou/gopsutil/v3 v3.23.3/go.mod h1:lSBNN6t3+D6W5e5nXTxc8KIMMVxAcS+6IJlffjRRlMU= github.com/shoenig/go-m1cpu v0.1.4/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= github.com/shoenig/go-m1cpu v0.1.5 h1:LF57Z/Fpb/WdGLjt2HZilNnmZOxg/q2bSKTQhgbrLrQ= github.com/shoenig/go-m1cpu v0.1.5/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= +github.com/shoenig/test v0.6.3 h1:GVXWJFk9PiOjN0KoJ7VrJGH6uLPnqxR7/fe3HUPfE0c= github.com/shoenig/test v0.6.3/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -806,8 +759,7 @@ github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -834,8 +786,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= @@ -884,8 +836,6 @@ go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsX go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= -go.mongodb.org/mongo-driver v1.11.1 h1:QP0znIRTuL0jf1oBQoAoM0C6ZJfBK4kx0Uumtv1A7w8= -go.mongodb.org/mongo-driver v1.11.1/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mongodb.org/mongo-driver v1.11.4 h1:4ayjakA013OdpGyL2K3ZqylTac/rMjrJOMZ1EHizXas= go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak= @@ -899,17 +849,15 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/otel v1.11.2 h1:YBZcQlsVekzFsFbjygXMOXSs6pialIZxcjfO/mBDmR0= -go.opentelemetry.io/otel v1.11.2/go.mod h1:7p4EUV+AqgdlNV9gL97IgUZiVR3yrFXYo53f9BM3tRI= go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= -go.opentelemetry.io/otel/sdk v1.11.1 h1:F7KmQgoHljhUuJyA+9BiU+EkJfyX5nVVF4wyzWZpKxs= -go.opentelemetry.io/otel/trace v1.11.2 h1:Xf7hWSF2Glv0DE3MH7fBHvtpSBsjcBUe5MYAmZM/+y0= -go.opentelemetry.io/otel/trace v1.11.2/go.mod h1:4N+yC7QEz7TTsG9BSRLNAa63eg5E06ObSbKPmxQ/pKA= +go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= @@ -926,16 +874,12 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -948,16 +892,14 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b h1:EqBVA+nNsObCwQoBEHy4wLU0pi7i8a4AL3pbItPdPkE= -golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 h1:5llv2sWeaMSnA3w2kS57ouQQ4pudlXrR0dCgw51QK9o= golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191206065243-da761ea9ff43/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.5.0 h1:5JMiNunQeQw++mMOz48/ISeNu3Iweh/JaZU8ZLqHRrI= -golang.org/x/image v0.5.0/go.mod h1:FVC7BI/5Ym8R25iw5OLsgshdUBbT1h5jZTpA+mvAdZ4= +golang.org/x/image v0.7.0 h1:gzS29xtG1J5ybQlv0PuyfE3nmc6R4qB73m6LUUmvFuw= +golang.org/x/image v0.7.0/go.mod h1:nd/q4ef1AKKYl/4kft7g+6UyGbdiqWqTP1ZAbRoV7Rg= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -982,8 +924,7 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1032,14 +973,13 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1149,8 +1089,6 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= @@ -1158,7 +1096,6 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= @@ -1172,8 +1109,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1238,10 +1175,8 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1352,8 +1287,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/AlecAivazis/survey.v1 v1.8.7 h1:oBJqtgsyBLg9K5FK9twNUbcPnbCPoh+R9a+7nag3qJM= From d11dce67357e176363cc865fedec6c7cb5de07b1 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 27 Apr 2023 15:15:29 -0400 Subject: [PATCH 33/51] rever sdk go updates for network-tests --- network-tests/go.mod | 108 +++++---- network-tests/go.sum | 230 +++++++++----------- network-tests/utils/ziti-echo/cmd/client.go | 9 +- network-tests/utils/ziti-echo/cmd/server.go | 16 +- 4 files changed, 168 insertions(+), 195 deletions(-) diff --git a/network-tests/go.mod b/network-tests/go.mod index 92d75b04d..5705fc89d 100644 --- a/network-tests/go.mod +++ b/network-tests/go.mod @@ -2,50 +2,48 @@ module github.com/openziti/ziti/network-tests go 1.19 -replace github.com/openziti/ziti => ../ - require ( github.com/openziti/fablab v0.4.23 - github.com/openziti/sdk-golang v0.20.2 + github.com/openziti/sdk-golang v0.18.26 github.com/openziti/zitilab v0.1.21 github.com/sirupsen/logrus v1.9.0 - github.com/spf13/cobra v1.7.0 + github.com/spf13/cobra v1.6.1 ) require ( github.com/AppsFlyer/go-sundheit v0.5.0 // indirect github.com/Jeffail/gabs v1.4.0 // indirect - github.com/Jeffail/gabs/v2 v2.7.0 // indirect + github.com/Jeffail/gabs/v2 v2.6.1 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/MichaelMure/go-term-markdown v0.1.4 // indirect github.com/MichaelMure/go-term-text v0.3.1 // indirect github.com/alecthomas/chroma v0.10.0 // indirect - github.com/andybalholm/brotli v1.0.5 // indirect + github.com/andybalholm/brotli v1.0.4 // indirect github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd // indirect - github.com/armon/go-metrics v0.4.1 // indirect - github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect + github.com/armon/go-metrics v0.3.10 // indirect + github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect github.com/aws/aws-sdk-go v1.44.118 // indirect github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c // indirect github.com/blang/semver v3.5.1+incompatible // indirect github.com/boltdb/bolt v1.3.1 // indirect github.com/c-bata/go-prompt v0.2.6 // indirect - github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/coreos/go-iptables v0.6.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/dgoogauth v0.0.0-20190221195224-5a805980a5f3 // indirect github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663 // indirect github.com/disintegration/imaging v1.6.2 // indirect - github.com/dlclark/regexp2 v1.9.0 // indirect + github.com/dlclark/regexp2 v1.8.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/ef-ds/deque v1.0.4 // indirect github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/fatih/color v1.15.0 // indirect + github.com/fatih/color v1.14.1 // indirect github.com/felixge/httpsnoop v1.0.1 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect github.com/go-acme/lego/v4 v4.2.0 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-openapi/analysis v0.21.4 // indirect @@ -53,27 +51,27 @@ require ( github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/loads v0.21.2 // indirect - github.com/go-openapi/runtime v0.26.0 // indirect - github.com/go-openapi/spec v0.20.9 // indirect - github.com/go-openapi/strfmt v0.21.7 // indirect + github.com/go-openapi/runtime v0.25.0 // indirect + github.com/go-openapi/spec v0.20.8 // indirect + github.com/go-openapi/strfmt v0.21.3 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/go-openapi/validate v0.22.1 // indirect github.com/go-resty/resty/v2 v2.7.0 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/gomarkdown/markdown v0.0.0-20230322041520-c84983bdbf2a // indirect + github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/hashicorp/go-hclog v1.5.0 // indirect + github.com/hashicorp/go-hclog v1.4.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-msgpack v0.5.5 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect - github.com/hashicorp/golang-lru/v2 v2.0.2 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.1 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/raft v1.5.0 // indirect + github.com/hashicorp/raft v1.3.11 // indirect github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jedib0t/go-pretty/v6 v6.4.4 // indirect @@ -82,48 +80,46 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/josharian/native v1.0.0 // indirect - github.com/kataras/go-events v0.0.3 // indirect + github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 // indirect github.com/kr/fs v0.1.0 // indirect - github.com/kyokomi/emoji/v2 v2.2.12 // indirect + github.com/kyokomi/emoji/v2 v2.2.11 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/lucsky/cuid v1.2.1 // indirect - github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a // indirect + github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de // indirect github.com/magiconair/properties v1.8.5 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.18 // indirect + github.com/mattn/go-isatty v0.0.17 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/mdlayher/netlink v1.7.1 // indirect github.com/mdlayher/socket v0.4.0 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4 // indirect - github.com/michaelquigley/pfxlog v0.6.10 // indirect - github.com/miekg/dns v1.1.53 // indirect + github.com/michaelquigley/pfxlog v0.6.9 // indirect + github.com/miekg/dns v1.1.50 // indirect github.com/miekg/pkcs11 v1.1.1 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/natefinch/lumberjack v2.0.0+incompatible // indirect github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce // indirect - github.com/netfoundry/secretstream v0.1.5 // indirect + github.com/netfoundry/secretstream v0.1.2 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/openziti/agent v1.0.10 // indirect - github.com/openziti/channel/v2 v2.0.62 // indirect - github.com/openziti/edge v0.24.251 // indirect - github.com/openziti/edge-api v0.25.18 // indirect - github.com/openziti/fabric v0.23.1 // indirect - github.com/openziti/foundation/v2 v2.0.21 // indirect - github.com/openziti/identity v1.0.47 // indirect - github.com/openziti/jwks v1.0.3 // indirect - github.com/openziti/metrics v1.2.19 // indirect - github.com/openziti/runzmd v1.0.20 // indirect - github.com/openziti/secretstream v0.1.6 // indirect - github.com/openziti/storage v0.2.0 // indirect - github.com/openziti/transport/v2 v2.0.75 // indirect + github.com/openziti/agent v1.0.8 // indirect + github.com/openziti/channel/v2 v2.0.26 // indirect + github.com/openziti/edge v0.24.95 // indirect + github.com/openziti/fabric v0.22.7 // indirect + github.com/openziti/foundation/v2 v2.0.10 // indirect + github.com/openziti/identity v1.0.30 // indirect + github.com/openziti/jwks v1.0.2 // indirect + github.com/openziti/metrics v1.2.3 // indirect + github.com/openziti/runzmd v1.0.9 // indirect + github.com/openziti/storage v0.1.33 // indirect + github.com/openziti/transport/v2 v2.0.50 // indirect github.com/openziti/x509-claims v1.0.3 // indirect github.com/openziti/xweb/v2 v2.0.2 // indirect github.com/openziti/ziti v0.27.2 // indirect @@ -136,13 +132,11 @@ require ( github.com/pkg/term v1.2.0-beta.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect - github.com/rabbitmq/amqp091-go v1.8.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/rivo/uniseg v0.4.4 // indirect + github.com/rivo/uniseg v0.4.3 // indirect github.com/rodaine/table v1.0.1 // indirect github.com/russross/blackfriday v1.5.2 // indirect - github.com/shirou/gopsutil/v3 v3.23.3 // indirect - github.com/shoenig/go-m1cpu v0.1.5 // indirect + github.com/shirou/gopsutil/v3 v3.23.1 // indirect github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect github.com/speps/go-hashids v2.0.0+incompatible // indirect github.com/spf13/afero v1.6.0 // indirect @@ -150,7 +144,7 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.10.0 // indirect - github.com/stretchr/testify v1.8.2 // indirect + github.com/stretchr/testify v1.8.1 // indirect github.com/subosito/gotenv v1.2.0 // indirect github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/tklauser/go-sysconf v0.3.11 // indirect @@ -162,21 +156,21 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect go.etcd.io/bbolt v1.3.7 // indirect - go.mongodb.org/mongo-driver v1.11.4 // indirect + go.mongodb.org/mongo-driver v1.11.1 // indirect go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect - go.opentelemetry.io/otel v1.14.0 // indirect - go.opentelemetry.io/otel/trace v1.14.0 // indirect - golang.org/x/crypto v0.8.0 // indirect - golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 // indirect - golang.org/x/image v0.7.0 // indirect - golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.9.0 // indirect + go.opentelemetry.io/otel v1.11.2 // indirect + go.opentelemetry.io/otel/trace v1.11.2 // indirect + golang.org/x/crypto v0.5.0 // indirect + golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b // indirect + golang.org/x/image v0.5.0 // indirect + golang.org/x/mod v0.6.0 // indirect + golang.org/x/net v0.7.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.7.0 // indirect - golang.org/x/term v0.7.0 // indirect - golang.org/x/text v0.9.0 // indirect - golang.org/x/tools v0.6.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/term v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect + golang.org/x/tools v0.2.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/AlecAivazis/survey.v1 v1.8.7 // indirect gopkg.in/ini.v1 v1.66.2 // indirect gopkg.in/resty.v1 v1.12.0 // indirect diff --git a/network-tests/go.sum b/network-tests/go.sum index 6e36a6aae..5146eb36f 100644 --- a/network-tests/go.sum +++ b/network-tests/go.sum @@ -60,8 +60,8 @@ github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3 github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Jeffail/gabs v1.4.0 h1://5fYRRTq1edjfIrQGvdkcd22pkYUrHZ5YC/H2GJVAo= github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= -github.com/Jeffail/gabs/v2 v2.7.0 h1:Y2edYaTcE8ZpRsR2AtmPu5xQdFDIthFG0jYhu5PY8kg= -github.com/Jeffail/gabs/v2 v2.7.0/go.mod h1:dp5ocw1FvBBQYssgHsG7I1WYsiLRtkUaB1FEtSwvNUw= +github.com/Jeffail/gabs/v2 v2.6.1 h1:wwbE6nTQTwIMsMxzi6XFQQYRZ6wDc1mSdxoAN+9U4Gk= +github.com/Jeffail/gabs/v2 v2.6.1/go.mod h1:xCn81vdHKxFUuWWAaD5jCTQDNPBMh5pPs9IJ+NcziBI= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/MichaelMure/go-term-markdown v0.1.4 h1:Ir3kBXDUtOX7dEv0EaQV8CNPpH+T7AfTh0eniMOtNcs= @@ -88,8 +88,8 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/aliyun/alibaba-cloud-sdk-go v1.61.458/go.mod h1:pUKYbK5JQ+1Dfxk80P0qxGqe5dkxDoabbZS7zOcouyA= -github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= -github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd h1:fjJY1LimH0wVCvOHLX35SCX/MbWomAglET1H2kvz7xc= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= @@ -98,12 +98,12 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg= github.com/armon/go-metrics v0.3.8/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= -github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= -github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8Uo= +github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= -github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= +github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/aws/aws-sdk-go v1.30.20/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.44.118 h1:FJOqIRTukf7+Ulp047/k7JB6eqMXNnj7eb+coORThHQ= github.com/aws/aws-sdk-go v1.44.118/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= @@ -122,8 +122,8 @@ github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBW github.com/c-bata/go-prompt v0.2.6 h1:POP+nrHE+DfLYx370bedwNhsqmpCUynWPxuHi0C5vZI= github.com/c-bata/go-prompt v0.2.6/go.mod h1:/LMAke8wD2FsNu9EXNdHxNLbd9MedkPnCdfpU9wwHfY= github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= -github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= -github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= +github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -161,8 +161,8 @@ github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1 github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.9.0 h1:pTK/l/3qYIKaRXuHnEnIf7Y5NxfRPfpb7dis6/gdlVI= -github.com/dlclark/regexp2 v1.9.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dlclark/regexp2 v1.8.0 h1:rJD5HeGIT/2b5CDk63FVCwZA3qgYElfg+oQK7uH5pfE= +github.com/dlclark/regexp2 v1.8.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnsimple/dnsimple-go v0.63.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -186,8 +186,8 @@ github.com/exoscale/egoscale v0.23.0/go.mod h1:hRo78jkjkCDKpivQdRBEpNYF5+cVpCJCP github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= +github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= @@ -212,8 +212,8 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= @@ -237,17 +237,16 @@ github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8enro= github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= -github.com/go-openapi/runtime v0.26.0 h1:HYOFtG00FM1UvqrcxbEJg/SwvDRvYLQKGhw2zaQjTcc= -github.com/go-openapi/runtime v0.26.0/go.mod h1:QgRGeZwrUcSHdeh4Ka9Glvo0ug1LC5WyE+EV88plZrQ= +github.com/go-openapi/runtime v0.25.0 h1:7yQTCdRbWhX8vnIjdzU8S00tBYf7Sg71EBeorlPHvhc= +github.com/go-openapi/runtime v0.25.0/go.mod h1:Ux6fikcHXyyob6LNWxtE96hWwjBPYF0DXgVFuMTneOs= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= -github.com/go-openapi/spec v0.20.9 h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8= -github.com/go-openapi/spec v0.20.9/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= +github.com/go-openapi/spec v0.20.8 h1:ubHmXNY3FCIOinT8RNrrPfGc9t7I1qhPtdOGoG2AxRU= +github.com/go-openapi/spec v0.20.8/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= +github.com/go-openapi/strfmt v0.21.3 h1:xwhj5X6CjXEZZHMWy1zKJxvW9AfHC9pkyUjLvHtKG7o= github.com/go-openapi/strfmt v0.21.3/go.mod h1:k+RzNO0Da+k3FrrynSNN8F7n/peCmQQqbbXjtDfvmGg= -github.com/go-openapi/strfmt v0.21.7 h1:rspiXgNWgeUzhjo1YU01do6qsahtJNByjLVbPLNHb8k= -github.com/go-openapi/strfmt v0.21.7/go.mod h1:adeGTkxE44sPyLk0JV235VQAO/ZXUr8KAzYjclFs3ew= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= @@ -326,8 +325,8 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU= -github.com/gomarkdown/markdown v0.0.0-20230322041520-c84983bdbf2a h1:AWZzzFrqyjYlRloN6edwTLTUbKxf5flLXNuTBDm3Ews= -github.com/gomarkdown/markdown v0.0.0-20230322041520-c84983bdbf2a/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= +github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c h1:iyaGYbCmcYK0Ja9a3OUa2Fo+EaN0cbLu0eKpBwPFzc8= +github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -388,8 +387,8 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= -github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-hclog v1.4.0 h1:ctuWFGrhFha8BnnzxqeRGidlEcQkDyL5u8J8t5eA11I= +github.com/hashicorp/go-hclog v1.4.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -410,16 +409,16 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru/v2 v2.0.2 h1:Dwmkdr5Nc/oBiXgJS3CDHNhJtIHkuZ3DZF5twqnfBdU= -github.com/hashicorp/golang-lru/v2 v2.0.2/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/golang-lru/v2 v2.0.1 h1:5pv5N1lT1fjLg2VQ5KWc7kmucp2x/kvFOnxuVTqZ6x4= +github.com/hashicorp/golang-lru/v2 v2.0.1/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/raft v1.1.0/go.mod h1:4Ak7FSPnuvmb0GV6vgIAJ4vYT4bek9bb6Q+7HVbyzqM= -github.com/hashicorp/raft v1.5.0 h1:uNs9EfJ4FwiArZRxxfd/dQ5d33nV31/CdCHArH89hT8= -github.com/hashicorp/raft v1.5.0/go.mod h1:pKHB2mf/Y25u3AHNSXVRv+yT+WAnmeTX0BwVppVQV+M= +github.com/hashicorp/raft v1.3.11 h1:p3v6gf6l3S797NnK5av3HcczOC1T5CLoaRvg0g9ys4A= +github.com/hashicorp/raft v1.3.11/go.mod h1:J8naEwc6XaaCfts7+28whSeRvCqTd6e20BlCU3LtEO4= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 h1:CO8dBMLH6dvE1jTn/30ZZw3iuPsNfajshWoJTnVc5cc= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0/go.mod h1:nTakvJ4XYq45UXtn0DbwR4aU9ZdjlnIenpbs6Cd+FM0= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= @@ -430,6 +429,7 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jedib0t/go-pretty/v6 v6.4.4 h1:N+gz6UngBPF4M288kiMURPHELDMIhF/Em35aYuKrsSc= @@ -460,8 +460,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kataras/go-events v0.0.3 h1:o5YK53uURXtrlg7qE/vovxd/yKOJcLuFtPQbf1rYMC4= -github.com/kataras/go-events v0.0.3/go.mod h1:bFBgtzwwzrag7kQmGuU1ZaVxhK2qseYPQomXoVEMsj4= +github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6 h1:XXnySN8wVet8S4UlcXHjh8Oa7618Eu7z92HxU5cIfhA= +github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6/go.mod h1:6IxMW59VJdEIqj3bjFGJvGLRdb0WHtrlxPZy9qXctcg= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 h1:WjT3fLi9n8YWh/Ih8Q1LHAPsTqGddPcHqscN+PJ3i68= @@ -485,8 +485,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kyokomi/emoji/v2 v2.2.8/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= -github.com/kyokomi/emoji/v2 v2.2.12 h1:sSVA5nH9ebR3Zji1o31wu3yOwD1zKXQA2z0zUyeit60= -github.com/kyokomi/emoji/v2 v2.2.12/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= +github.com/kyokomi/emoji/v2 v2.2.11 h1:Pf/ZWVTbnAVkHOLJLWjPxM/FmgyPe+d85cv/OLP5Yus= +github.com/kyokomi/emoji/v2 v2.2.11/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/linode/linodego v0.21.0/go.mod h1:UTpq1JUZD0CZsJ8rt+0CRkqbzrp1MbGakVPt2DXY5Mk= @@ -497,8 +497,8 @@ github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i github.com/lucsky/cuid v1.2.1 h1:MtJrL2OFhvYufUIn48d35QGXyeTC8tn0upumW9WwTHg= github.com/lucsky/cuid v1.2.1/go.mod h1:QaaJqckboimOmhRSJXSx/+IT+VTfxfPGSo/6mfgUfmE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a h1:N9zuLhTvBSRt0gWSiJswwQ2HqDmtX/ZCDJURnKUt1Ik= -github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= +github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de h1:V53FWzU6KAZVi1tPp5UIsMoUWJ2/PNwYIDXnu7QuBCE= +github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -526,8 +526,8 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= @@ -549,12 +549,12 @@ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4 h1:O0aAES+Hu4tySETys37Xd1wMcUohr5X7yM3qaRSHKRw= github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4/go.mod h1:ZgenLagNkpruEGzNeXiQH9RtZedSLKw1WlDTJWPZzpk= -github.com/michaelquigley/pfxlog v0.6.10 h1:IbC/H3MmSDcPlQHF1UZPQU13Dkrs0+ycWRyQd2ihnjw= -github.com/michaelquigley/pfxlog v0.6.10/go.mod h1:gEiNTfKEX6cJHSwRpOuqBpc8oYrlhMiDK/xMk/gV7D0= +github.com/michaelquigley/pfxlog v0.6.9 h1:K/weH6ARu58aEDQi0ccinItvV958CeO6Ri4jqeFwd/w= +github.com/michaelquigley/pfxlog v0.6.9/go.mod h1:D2vg1tPyPdSXWWkSnGk6Fomwh5b3clwVJDUh71tq8Sk= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/miekg/dns v1.1.53 h1:ZBkuHr5dxHtB1caEOlZTLPo7D3L3TWckgUUs/RHfDxw= -github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= +github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= +github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= @@ -584,8 +584,8 @@ github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6Yf github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce h1:TqjP/BTDrwN7zP9xyXVuLsMBXYMt6LLYi55PlrIcq8U= github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:ifHPsLndGGzvgzcaXUvzmt6LxKT4pJ+uzEhtnMt+f7A= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= -github.com/netfoundry/secretstream v0.1.5 h1:iQ4brqUeZO7xNlSpwZDhekPW8d5LlRyHwvvevBOP1IM= -github.com/netfoundry/secretstream v0.1.5/go.mod h1:N6Mvl9Lk8xs84hFS9qZfjcJWiXmpzqaXW/L9W0JYfXY= +github.com/netfoundry/secretstream v0.1.2 h1:NgqrYytDnjKbOfWI29TT0SJM+RwB3yf9MIkJVJaU+J0= +github.com/netfoundry/secretstream v0.1.2/go.mod h1:uasYkYSp0MmNSlKOWJ2sVzxPms8e58TS4ENq4yro86k= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nrdcg/auroradns v1.0.1/go.mod h1:y4pc0i9QXYlFCWrhWrUSIETnZgrf4KuwjDIWmmXo3JI= github.com/nrdcg/desec v0.5.0/go.mod h1:2ejvMazkav1VdDbv2HeQO7w+Ta1CGHqzQr27ZBYTuEQ= @@ -612,40 +612,38 @@ github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openziti/agent v1.0.10 h1:9oTmNXghlggD+O7BJdBp3PkD5kAZ1ssSC6IHZkMakzQ= -github.com/openziti/agent v1.0.10/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= -github.com/openziti/channel/v2 v2.0.62 h1:WmNYAugoyQ2HFu2VEhOH4WExzXsX6+dzSQDzNfHf5M8= -github.com/openziti/channel/v2 v2.0.62/go.mod h1:TS2FJs1GuCZXUfSFfptrNWKeTuQRO7YJ9K7C2jWMznA= -github.com/openziti/edge v0.24.251 h1:F7m8U3UQLEC53s3t/UXGsAKlSar8qY+BubD1Ek01OcA= -github.com/openziti/edge v0.24.251/go.mod h1:Qoj6QDOxOtBZf36CHDu8FLDwpiTY6Ra7xcFmVsRFVM0= -github.com/openziti/edge-api v0.25.18 h1:LEiDz7MF4R9ZQNHwG34oTy4XCUlX4+kXRzvNYhp6e08= -github.com/openziti/edge-api v0.25.18/go.mod h1:m4fMjlxnU1Yq9rsBYNKMs1B3BxLZlpo/V3iy42H/Bkg= +github.com/openziti/agent v1.0.8 h1:qB4zQO9dz3PL8qbeyzCWbwTrtHZPEZlYtjkJJ78SJPo= +github.com/openziti/agent v1.0.8/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= +github.com/openziti/channel/v2 v2.0.26 h1:IIEnno26FuywcyCwCie1U7OHoB8HzuG95EzEnvtKmio= +github.com/openziti/channel/v2 v2.0.26/go.mod h1:zZO0bgVYY9FCDs2EMRakDl6wIfyOWuzgPzPL8EvQ5Ks= +github.com/openziti/edge v0.24.95 h1:Lj7ycWVOXbqt3TK6NSGPWXj5bp3/5rX7rA+bR5wA8Nc= +github.com/openziti/edge v0.24.95/go.mod h1:nVamtrBekK372q8bbKK/D6t0W7LBqQ+Miu0YE1u3od4= github.com/openziti/fablab v0.4.23 h1:GKbSceX8hphBfY0RtYkrq7LTilnV61w4JCb4hh70Zio= github.com/openziti/fablab v0.4.23/go.mod h1:ff6XCI4YryKcyhblK3zNVkiEH0JXDhO6ZkHQN4N0wDE= -github.com/openziti/fabric v0.23.1 h1:9RFRmApJ9EGUNNwIP4OSZcgFmiBdVLTvLfYsYRID8ws= -github.com/openziti/fabric v0.23.1/go.mod h1:p5EI0s0LvNi6HipLR+PWDon89C3dhfyX/jac/3cwmpA= -github.com/openziti/foundation/v2 v2.0.21 h1:3EDDmSunsbd2DlULuY/vqj12LHRZOknH/m3lf6Ws5Nw= -github.com/openziti/foundation/v2 v2.0.21/go.mod h1:02GW3jFSSlfLwYwuTIldP/S4w7eCKqlzL6ajFSGHNPA= -github.com/openziti/identity v1.0.47 h1:Zc1wL4yMq6hcmbgNR6d3gSkGCiK3IJYd9i4obBNBMPw= -github.com/openziti/identity v1.0.47/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= -github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc= -github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ= -github.com/openziti/metrics v1.2.19 h1:gQO3e2lUotRHBdGUXYBPWMIErIyyF5hw0EakwQbJzuM= -github.com/openziti/metrics v1.2.19/go.mod h1:ovvxTpDBxGLcVLHgPTFFvwT4ur8p4Z76BPUhIE5iwqc= -github.com/openziti/runzmd v1.0.20 h1:LzRPZRVO9AepAFzGTEsRGp2LRVtJp5vr+QOBl8KbN4w= -github.com/openziti/runzmd v1.0.20/go.mod h1:IXTk5dHAZxtqjg9WVHOiyXHqEHZdwaH5Wg80h5Ux3bQ= -github.com/openziti/sdk-golang v0.20.2 h1:HTwWN7RmWrIop+AspcR2gVr13KYm4s3KS2RvgPhmVWs= -github.com/openziti/sdk-golang v0.20.2/go.mod h1:QE22lxF7REJXuggFCPPiKrlttgwrqSPEvUb0ka+jtjk= -github.com/openziti/secretstream v0.1.6 h1:TbpTwW/lc/0kuvaoRNjpiyebxh2Hyx8XSTB269QtHN4= -github.com/openziti/secretstream v0.1.6/go.mod h1:Gc6fhaDC46UUvwJD4ogbYji22YSdz3fe8bno+BFIpcE= -github.com/openziti/storage v0.2.0 h1:uwSoZQEZCzxp4+KZEi7fOWezbm0knmcCbRhni/DGHSo= -github.com/openziti/storage v0.2.0/go.mod h1:rJjLObUtJBNcm7MvnTr4DHCXZ+ppg0OMeoJ5tfi1aJI= -github.com/openziti/transport/v2 v2.0.75 h1:KZmnyRH1SOXSI6DXqDRsbRxRJE2cWv5EDCiQqC+R+hQ= -github.com/openziti/transport/v2 v2.0.75/go.mod h1:xMoDhxk9FFQoVyh4YL2h1hOshE5Aqlabd4mctmK1TWU= +github.com/openziti/fabric v0.22.7 h1:o0k/QnCpVZPiC77fh/NoUVCoeQNhfBm4oOICcJsdkWc= +github.com/openziti/fabric v0.22.7/go.mod h1:NITYnGTCeu0ENixTd7qXFzGyIDm5GkyJhxKYTnmFzjk= +github.com/openziti/foundation/v2 v2.0.10 h1:IeOkcPbgBpBTw4JrWz8s9Z76vO/m+i2uIE0cMZ0C2DM= +github.com/openziti/foundation/v2 v2.0.10/go.mod h1:Z0gnQsGJb/H/B+pixLtmCIpw1dBllD4QoT6LeD35WzA= +github.com/openziti/identity v1.0.30 h1:N2WDdK7MpeXuHCRjMo6N/QMtUXUkenUEqfKWXFNu2oE= +github.com/openziti/identity v1.0.30/go.mod h1:SPZAaqvDToS2jtae4D2fvO9IsR6G6FKNZ8WTqAwKKJE= +github.com/openziti/jwks v1.0.2 h1:32BGXIAnefS+v7uXKPb1x8/cQ7srek6Ai06dsrMTY4E= +github.com/openziti/jwks v1.0.2/go.mod h1:KwO0x9FBG0aoJS5f6nH5xeHoplyR1H143SMI9kF0mC8= +github.com/openziti/metrics v1.2.3 h1:h9+mSU673QLSMOb3YibD1vNgE0yIDZ5leiUqDwN5szE= +github.com/openziti/metrics v1.2.3/go.mod h1:jK8BfZ9nXMhO+LPcUPpN/sebrLfIeF4uaHlm5JIF7BY= +github.com/openziti/runzmd v1.0.9 h1:gQnZT5cACuVpcBBBHWIaN9Vmwv8KUNa7LBLG8Xi13/U= +github.com/openziti/runzmd v1.0.9/go.mod h1:s6amx7gbzewUqlnq8dcvJ50eb0ryjQtknPYubOHuIug= +github.com/openziti/sdk-golang v0.18.26 h1:Wk2s88R9b5SeP3D3uEpqE31ffY20Y1v2ZSyYfgud/BA= +github.com/openziti/sdk-golang v0.18.26/go.mod h1:QCoDwqjGm8qxcIDboY+jglfjZVdz8gREquRMpX7jz8I= +github.com/openziti/storage v0.1.33 h1:c3jdiJPIthYC51Ye2VOBGuz3g1DGVzmjGIlgPs1BcOg= +github.com/openziti/storage v0.1.33/go.mod h1:G4swa9DU8oG+B+tv4X7X5QjtI8nxbXhEUKlDbwNowBY= +github.com/openziti/transport/v2 v2.0.50 h1:bMk0CeQhg61vaCpAUANlu+hZTqyZSa7IFX3ZYFi1tns= +github.com/openziti/transport/v2 v2.0.50/go.mod h1:I3qtYJhHzEzydqqdIq8IZStwPV7ybynK0mJP17MB/q0= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= github.com/openziti/xweb/v2 v2.0.2/go.mod h1:KQOOlnJk08EZT3TWkvDj/pbIUEVbgG0IrrNzl8gsi40= +github.com/openziti/ziti v0.27.2 h1:OPNwVOy2OzucFrThOckWxr7GaD5CTBXsY2dZA23W5a4= +github.com/openziti/ziti v0.27.2/go.mod h1:ZnXzNonbbJPd+mmkeEY6moICdfNrdOs1DD8zdWDNMcc= github.com/openziti/ziti-db-explorer v1.1.1 h1:G0eoTby+aIjjt5TxEfR+FMI2CWd4RvZFjzaIMX2lEBw= github.com/openziti/ziti-db-explorer v1.1.1/go.mod h1:h76h7Tsb+khb0v+CqYKL6ifUfJbUMjGBFU2IvupfBE4= github.com/openziti/zitilab v0.1.21 h1:ZZEq86qMvOAtzcgL1b2CqmZDnGqBH8cZ1nXcHdd3I+E= @@ -660,6 +658,7 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= @@ -704,16 +703,14 @@ github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/rabbitmq/amqp091-go v1.8.0 h1:GBFy5PpLQ5jSVVSYv8ecHGqeX7UTLYR4ItQbDCss9MM= -github.com/rabbitmq/amqp091-go v1.8.0/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc= github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= -github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= +github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rodaine/table v1.0.1 h1:U/VwCnUxlVYxw8+NJiLIuCxA/xa6jL38MY3FYysVWWQ= github.com/rodaine/table v1.0.1/go.mod h1:UVEtfBsflpeEcD56nF4F5AocNFta0ZuolpSVdPtlmP4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -729,13 +726,8 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/sacloud/libsacloud v1.36.2/go.mod h1:P7YAOVmnIn3DKHqCZcUKYUXmSwGBm3yS7IBEjKVSrjg= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil/v3 v3.23.3 h1:Syt5vVZXUDXPEXpIBt5ziWsJ4LdSAAxF4l/xZeQgSEE= -github.com/shirou/gopsutil/v3 v3.23.3/go.mod h1:lSBNN6t3+D6W5e5nXTxc8KIMMVxAcS+6IJlffjRRlMU= -github.com/shoenig/go-m1cpu v0.1.4/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= -github.com/shoenig/go-m1cpu v0.1.5 h1:LF57Z/Fpb/WdGLjt2HZilNnmZOxg/q2bSKTQhgbrLrQ= -github.com/shoenig/go-m1cpu v0.1.5/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= -github.com/shoenig/test v0.6.3 h1:GVXWJFk9PiOjN0KoJ7VrJGH6uLPnqxR7/fe3HUPfE0c= -github.com/shoenig/test v0.6.3/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shirou/gopsutil/v3 v3.23.1 h1:a9KKO+kGLKEvcPIs4W62v0nu3sciVDOOOPUD0Hz7z/4= +github.com/shirou/gopsutil/v3 v3.23.1/go.mod h1:NN6mnm5/0k8jw4cBfCnJtr5L7ErOTg18tMNpgFkn0hA= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -759,8 +751,8 @@ github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= +github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -786,9 +778,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= @@ -836,8 +827,8 @@ go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsX go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= -go.mongodb.org/mongo-driver v1.11.4 h1:4ayjakA013OdpGyL2K3ZqylTac/rMjrJOMZ1EHizXas= -go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= +go.mongodb.org/mongo-driver v1.11.1 h1:QP0znIRTuL0jf1oBQoAoM0C6ZJfBK4kx0Uumtv1A7w8= +go.mongodb.org/mongo-driver v1.11.1/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -849,15 +840,13 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= -go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= -go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= -go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= -go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= +go.opentelemetry.io/otel v1.11.2 h1:YBZcQlsVekzFsFbjygXMOXSs6pialIZxcjfO/mBDmR0= +go.opentelemetry.io/otel v1.11.2/go.mod h1:7p4EUV+AqgdlNV9gL97IgUZiVR3yrFXYo53f9BM3tRI= +go.opentelemetry.io/otel/sdk v1.11.1 h1:F7KmQgoHljhUuJyA+9BiU+EkJfyX5nVVF4wyzWZpKxs= +go.opentelemetry.io/otel/trace v1.11.2 h1:Xf7hWSF2Glv0DE3MH7fBHvtpSBsjcBUe5MYAmZM/+y0= +go.opentelemetry.io/otel/trace v1.11.2/go.mod h1:4N+yC7QEz7TTsG9BSRLNAa63eg5E06ObSbKPmxQ/pKA= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= -go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= @@ -874,14 +863,15 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= -golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= +golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -892,14 +882,14 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 h1:5llv2sWeaMSnA3w2kS57ouQQ4pudlXrR0dCgw51QK9o= -golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b h1:EqBVA+nNsObCwQoBEHy4wLU0pi7i8a4AL3pbItPdPkE= +golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191206065243-da761ea9ff43/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.7.0 h1:gzS29xtG1J5ybQlv0PuyfE3nmc6R4qB73m6LUUmvFuw= -golang.org/x/image v0.7.0/go.mod h1:nd/q4ef1AKKYl/4kft7g+6UyGbdiqWqTP1ZAbRoV7Rg= +golang.org/x/image v0.5.0 h1:5JMiNunQeQw++mMOz48/ISeNu3Iweh/JaZU8ZLqHRrI= +golang.org/x/image v0.5.0/go.mod h1:FVC7BI/5Ym8R25iw5OLsgshdUBbT1h5jZTpA+mvAdZ4= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -924,8 +914,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I= +golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -973,14 +963,13 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= +golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1087,18 +1076,14 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1108,10 +1093,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1175,9 +1158,10 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE= +golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1287,8 +1271,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/AlecAivazis/survey.v1 v1.8.7 h1:oBJqtgsyBLg9K5FK9twNUbcPnbCPoh+R9a+7nag3qJM= gopkg.in/AlecAivazis/survey.v1 v1.8.7/go.mod h1:iBNOmqKz/NUbZx3bA+4hAGLRC7fSK7tgtVDT4tB22XA= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= diff --git a/network-tests/utils/ziti-echo/cmd/client.go b/network-tests/utils/ziti-echo/cmd/client.go index 84fb547af..b6e43b82b 100644 --- a/network-tests/utils/ziti-echo/cmd/client.go +++ b/network-tests/utils/ziti-echo/cmd/client.go @@ -11,6 +11,7 @@ import ( "strings" "github.com/openziti/sdk-golang/ziti" + "github.com/openziti/sdk-golang/ziti/config" "github.com/spf13/cobra" ) @@ -27,16 +28,12 @@ func init() { } func echoClient(cmd *cobra.Command, args []string) { - cfg, err := ziti.NewConfigFromFile(identityFile) + cfg, err := config.NewFromFile(identityFile) if err != nil { log.Fatal(err) } - zitiContext, err := ziti.NewContext(cfg) - - if err != nil { - log.Fatal(err) - } + zitiContext := ziti.NewContextWithConfig(cfg) dial := func(_ context.Context, _, addr string) (net.Conn, error) { service := strings.Split(addr, ":")[0] diff --git a/network-tests/utils/ziti-echo/cmd/server.go b/network-tests/utils/ziti-echo/cmd/server.go index c261d460a..8ae90af3d 100644 --- a/network-tests/utils/ziti-echo/cmd/server.go +++ b/network-tests/utils/ziti-echo/cmd/server.go @@ -1,9 +1,6 @@ package cmd import ( - "github.com/openziti/sdk-golang/ziti" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" "log" "net" "net/http" @@ -11,6 +8,11 @@ import ( "os/signal" "syscall" "time" + + "github.com/openziti/sdk-golang/ziti" + "github.com/openziti/sdk-golang/ziti/config" + "github.com/sirupsen/logrus" + "github.com/spf13/cobra" ) var serverCmd = &cobra.Command{ @@ -62,16 +64,12 @@ func (s *zitiEchoServer) ServeHTTP(rw http.ResponseWriter, r *http.Request) { } func (s *zitiEchoServer) run() (err error) { - config, err := ziti.NewConfigFromFile(s.identityJson) - if err != nil { - return err - } - - zitiContext, err := ziti.NewContext(config) + config, err := config.NewFromFile(s.identityJson) if err != nil { return err } + zitiContext := ziti.NewContextWithConfig(config) if s.listener, err = zitiContext.Listen("echo"); err != nil { return err } From ff616f2135ca4a59906df39cb105bf1dc6147290 Mon Sep 17 00:00:00 2001 From: Eng Zer Jun Date: Sat, 29 Apr 2023 18:18:48 +0800 Subject: [PATCH 34/51] refactor: replace go-ps with gopsutil/process This commit replaces the usage of `github.com/mitchellh/go-ps` with `github.com/shirou/gopsutil/v3/process`. `gopsutil` offers the same set of functionalities, eliminating the need for two dependencies. Signed-off-by: Eng Zer Jun --- go.mod | 1 - go.sum | 2 -- ziti/cmd/agentcli/agent_ps.go | 45 ++++++++++++++++++++++------------- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/go.mod b/go.mod index 29f087912..c0b037c1f 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,6 @@ require ( github.com/google/go-cmp v0.5.9 github.com/gorilla/websocket v1.5.0 github.com/jedib0t/go-pretty/v6 v6.4.0 - github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 github.com/michaelquigley/pfxlog v0.6.10 github.com/openziti/agent v1.0.10 github.com/openziti/channel/v2 v2.0.62 diff --git a/go.sum b/go.sum index a3ae71b27..310599fd1 100644 --- a/go.sum +++ b/go.sum @@ -526,8 +526,6 @@ github.com/kataras/go-events v0.0.3 h1:o5YK53uURXtrlg7qE/vovxd/yKOJcLuFtPQbf1rYM github.com/kataras/go-events v0.0.3/go.mod h1:bFBgtzwwzrag7kQmGuU1ZaVxhK2qseYPQomXoVEMsj4= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 h1:WjT3fLi9n8YWh/Ih8Q1LHAPsTqGddPcHqscN+PJ3i68= -github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19/go.mod h1:hY+WOq6m2FpbvyrI93sMaypsttvaIL5nhVR92dTMUcQ= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= diff --git a/ziti/cmd/agentcli/agent_ps.go b/ziti/cmd/agentcli/agent_ps.go index f88bb48e0..71587e33b 100644 --- a/ziti/cmd/agentcli/agent_ps.go +++ b/ziti/cmd/agentcli/agent_ps.go @@ -19,20 +19,21 @@ package agentcli import ( "bytes" "fmt" - "github.com/keybase/go-ps" - "github.com/openziti/ziti/ziti/cmd/common" - cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" - "github.com/pkg/errors" - "github.com/spf13/cobra" "os" "os/user" "path/filepath" "regexp" - goversion "rsc.io/goversion/version" "runtime" "strconv" "strings" "sync" + + "github.com/openziti/ziti/ziti/cmd/common" + cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" + "github.com/pkg/errors" + "github.com/shirou/gopsutil/v3/process" + "github.com/spf13/cobra" + goversion "rsc.io/goversion/version" ) type AgentPsAction struct { @@ -149,7 +150,7 @@ type P struct { // FindAll returns all the Ziti processes currently running on this host. func FindAll() []P { - pss, err := ps.Processes() + pss, err := process.Processes() // fmt.Println("FindAll, err is: %s", err) if err != nil { @@ -172,11 +173,19 @@ func FindAll() []P { if !ok { return } + ppid, err := pr.Ppid() + if err != nil { + return + } + name, err := pr.Name() + if err != nil { + return + } if isZiti(pr) { found <- P{ - PID: pr.Pid(), - PPID: pr.PPid(), - Exec: pr.Executable(), + PID: int(pr.Pid), + PPID: int(ppid), + Exec: name, Path: path, BuildVersion: version, Agent: agent, @@ -199,12 +208,12 @@ func FindAll() []P { // in the process' binary and determines if the process // if a Go process or not. If the process is a Go process, // it reports PID, binary name and full path of the binary. -func isGo(pr ps.Process) (path, version string, agent, ok bool, err error) { - if pr.Pid() == 0 { +func isGo(pr *process.Process) (path, version string, agent, ok bool, err error) { + if pr.Pid == 0 { // ignore system process return } - path, err = pr.Path() + path, err = pr.Exe() if err != nil { return } @@ -215,7 +224,7 @@ func isGo(pr ps.Process) (path, version string, agent, ok bool, err error) { } ok = true version = versionInfo.Release - pidfile, err := PIDFile(pr.Pid()) + pidfile, err := PIDFile(int(pr.Pid)) if err == nil { _, err := os.Stat(pidfile) agent = err == nil @@ -256,6 +265,10 @@ func PIDFile(pid int) (string, error) { return fmt.Sprintf("%s/%d", gopsdir, pid), nil } -func isZiti(pr ps.Process) (ok bool) { - return strings.HasPrefix(pr.Executable(), "ziti") +func isZiti(pr *process.Process) (ok bool) { + name, err := pr.Name() + if err != nil { + return false + } + return strings.HasPrefix(name, "ziti") } From 6a04a3254f37bf88fea9cd64e52922ab1c7ecddd Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Mon, 1 May 2023 13:27:00 -0400 Subject: [PATCH 35/51] move apostrophe. remove zlogin as it was never used/referenced --- quickstart/docker/image/ziti-cli-functions.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quickstart/docker/image/ziti-cli-functions.sh b/quickstart/docker/image/ziti-cli-functions.sh index fa24058d7..40f724947 100755 --- a/quickstart/docker/image/ziti-cli-functions.sh +++ b/quickstart/docker/image/ziti-cli-functions.sh @@ -1145,8 +1145,8 @@ function ziti_createEnvFile { echo "export PFXLOG_NO_JSON=true" >> "${ENV_FILE}" echo "alias zec='ziti edge'" >> "${ENV_FILE}" - echo "alias zlogin='ziti edge login \"\${ZITI_EDGE_CTRL_ADVERTISED}\" -u \"\${ZITI_USER-}\" -p \"\${ZITI_PWD}\"' -y" >> "${ENV_FILE}" - echo "alias zitiLogin='ziti edge login \"\${ZITI_EDGE_CTRL_ADVERTISED}\" -u \"\${ZITI_USER-}\" -p \"\${ZITI_PWD}\"' -y" >> "${ENV_FILE}" + echo "alias zlogin='ziti edge login \"\${ZITI_EDGE_CTRL_ADVERTISED}\" -u \"\${ZITI_USER-}\" -p \"\${ZITI_PWD}\" -y'" >> "${ENV_FILE}" + echo "alias zitiLogin='ziti edge login \"\${ZITI_EDGE_CTRL_ADVERTISED}\" -u \"\${ZITI_USER-}\" -p \"\${ZITI_PWD}\" -y'" >> "${ENV_FILE}" echo "alias psz='ps -ef | grep ziti'" >> "${ENV_FILE}" #when sourcing the emitted file add the bin folder to the path From 63417ba053752960b7d0ee3726a2269923cc5b5b Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Mon, 1 May 2023 13:27:12 -0400 Subject: [PATCH 36/51] move apostrophe. remove zlogin as it was never used/referenced --- quickstart/docker/image/ziti-cli-functions.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/quickstart/docker/image/ziti-cli-functions.sh b/quickstart/docker/image/ziti-cli-functions.sh index 40f724947..f408c7f48 100755 --- a/quickstart/docker/image/ziti-cli-functions.sh +++ b/quickstart/docker/image/ziti-cli-functions.sh @@ -1145,7 +1145,6 @@ function ziti_createEnvFile { echo "export PFXLOG_NO_JSON=true" >> "${ENV_FILE}" echo "alias zec='ziti edge'" >> "${ENV_FILE}" - echo "alias zlogin='ziti edge login \"\${ZITI_EDGE_CTRL_ADVERTISED}\" -u \"\${ZITI_USER-}\" -p \"\${ZITI_PWD}\" -y'" >> "${ENV_FILE}" echo "alias zitiLogin='ziti edge login \"\${ZITI_EDGE_CTRL_ADVERTISED}\" -u \"\${ZITI_USER-}\" -p \"\${ZITI_PWD}\" -y'" >> "${ENV_FILE}" echo "alias psz='ps -ef | grep ziti'" >> "${ENV_FILE}" From 0153dce17317f2482341b80f7a22eb0d702d56a3 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 11 May 2023 15:53:07 -0400 Subject: [PATCH 37/51] add user ziggy in container image --- docker-images/ziti-cli/Dockerfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docker-images/ziti-cli/Dockerfile b/docker-images/ziti-cli/Dockerfile index 125fb3628..60f2c95fd 100644 --- a/docker-images/ziti-cli/Dockerfile +++ b/docker-images/ziti-cli/Dockerfile @@ -28,7 +28,7 @@ LABEL name="openziti/ziti-cli" \ USER root ### install packages -RUN INSTALL_PKGS="python38 python38-pip tar bash-completion vim-minimal less" && \ +RUN INSTALL_PKGS="python38 python38-pip tar bash-completion vim-minimal less shadow-utils" && \ microdnf -y update --setopt=install_weak_deps=0 --setopt=tsflags=nodocs && \ microdnf -y install --setopt=install_weak_deps=0 --setopt=tsflags=nodocs ${INSTALL_PKGS} @@ -43,12 +43,17 @@ COPY --from=bitnami-kubectl /opt/bitnami/kubectl/bin/kubectl /usr/local/bin/ RUN mkdir -p -m0755 /licenses COPY ./LICENSE /licenses/apache.txt +RUN groupadd --gid 1001 ziggy \ + && adduser --uid 1001 --gid 1001 --system --home /home/ziggy --shell /bin/bash ziggy \ + && mkdir -p /home/ziggy \ + && chown -R 1001:1001 /home/ziggy \ + && chmod -R g+rwX /home/ziggy RUN mkdir -p /usr/local/bin COPY ${ARTIFACTS_DIR}/${TARGETARCH}/${TARGETOS}/ziti /usr/local/bin/ RUN chmod 0755 /usr/local/bin/ziti COPY ${DOCKER_BUILD_DIR}/entrypoint.sh / RUN chmod +x /entrypoint.sh -USER nobody +USER ziggy ENTRYPOINT [ "/entrypoint.sh" ] CMD [ "ziti" ] From 1b448d1d8e2fffa96c16c991c2cfb28df66609bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 May 2023 20:48:41 +0000 Subject: [PATCH 38/51] Bump github.com/docker/distribution Bumps [github.com/docker/distribution](https://github.com/docker/distribution) from 2.8.1+incompatible to 2.8.2+incompatible. - [Release notes](https://github.com/docker/distribution/releases) - [Commits](https://github.com/docker/distribution/compare/v2.8.1...v2.8.2) --- updated-dependencies: - dependency-name: github.com/docker/distribution dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c0b037c1f..2604785dd 100644 --- a/go.mod +++ b/go.mod @@ -73,7 +73,7 @@ require ( github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663 // indirect github.com/disintegration/imaging v1.6.2 // indirect github.com/dlclark/regexp2 v1.9.0 // indirect - github.com/docker/distribution v2.8.1+incompatible // indirect + github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/ef-ds/deque v1.0.4 // indirect diff --git a/go.sum b/go.sum index 310599fd1..d9045c67b 100644 --- a/go.sum +++ b/go.sum @@ -194,8 +194,8 @@ github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55k github.com/dlclark/regexp2 v1.9.0 h1:pTK/l/3qYIKaRXuHnEnIf7Y5NxfRPfpb7dis6/gdlVI= github.com/dlclark/regexp2 v1.9.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnsimple/dnsimple-go v0.63.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= -github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= -github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= +github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= From e865ed9a9992568e70a56921574ddee4765b285a Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Fri, 12 May 2023 10:11:01 -0400 Subject: [PATCH 39/51] set ziggy UID 2171 --- docker-images/ziti-cli/Dockerfile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docker-images/ziti-cli/Dockerfile b/docker-images/ziti-cli/Dockerfile index 60f2c95fd..5a87a867f 100644 --- a/docker-images/ziti-cli/Dockerfile +++ b/docker-images/ziti-cli/Dockerfile @@ -18,6 +18,9 @@ ARG TARGETOS # e.g. arm64 ARG TARGETARCH +ARG ZUID=2171 +ARG ZGID=2171 + ### Required OpenShift Labels LABEL name="openziti/ziti-cli" \ maintainer="developers@openziti.org" \ @@ -43,10 +46,10 @@ COPY --from=bitnami-kubectl /opt/bitnami/kubectl/bin/kubectl /usr/local/bin/ RUN mkdir -p -m0755 /licenses COPY ./LICENSE /licenses/apache.txt -RUN groupadd --gid 1001 ziggy \ - && adduser --uid 1001 --gid 1001 --system --home /home/ziggy --shell /bin/bash ziggy \ +RUN groupadd --gid ${ZGID} ziggy \ + && adduser --uid ${ZUID} --gid ${ZGID} --system --home /home/ziggy --shell /bin/bash ziggy \ && mkdir -p /home/ziggy \ - && chown -R 1001:1001 /home/ziggy \ + && chown -R ${ZUID}:${ZGID} /home/ziggy \ && chmod -R g+rwX /home/ziggy RUN mkdir -p /usr/local/bin COPY ${ARTIFACTS_DIR}/${TARGETARCH}/${TARGETOS}/ziti /usr/local/bin/ From c1d326d6eee06a59c3b92331f9355fa299f8e920 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Fri, 12 May 2023 11:25:56 -0400 Subject: [PATCH 40/51] force interactive shells to be login shells so we can reliably load bash completions --- docker-images/ziti-cli/Dockerfile | 3 +++ docker-images/ziti-cli/bashrc | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 docker-images/ziti-cli/bashrc diff --git a/docker-images/ziti-cli/Dockerfile b/docker-images/ziti-cli/Dockerfile index 5a87a867f..0a006e7ce 100644 --- a/docker-images/ziti-cli/Dockerfile +++ b/docker-images/ziti-cli/Dockerfile @@ -55,8 +55,11 @@ RUN mkdir -p /usr/local/bin COPY ${ARTIFACTS_DIR}/${TARGETARCH}/${TARGETOS}/ziti /usr/local/bin/ RUN chmod 0755 /usr/local/bin/ziti +RUN /usr/local/bin/ziti completion bash > /etc/bash_completion.d/ziti_cli + COPY ${DOCKER_BUILD_DIR}/entrypoint.sh / RUN chmod +x /entrypoint.sh USER ziggy +COPY ${DOCKER_BUILD_DIR}/bashrc /home/ziggy/.bashrc ENTRYPOINT [ "/entrypoint.sh" ] CMD [ "ziti" ] diff --git a/docker-images/ziti-cli/bashrc b/docker-images/ziti-cli/bashrc new file mode 100644 index 000000000..82f366d9e --- /dev/null +++ b/docker-images/ziti-cli/bashrc @@ -0,0 +1,21 @@ +# this script addresses the problem of /etc/profile not being sourced +# because ziggy's BASH shell is not a "login shell." /etc/profile is +# intended to be sourced only once by the first shell, but it never runs +# automatically upon login because the first shell isn't invoked as a login +# shell. .bashrc runs for all interactive shells, so we can use it to +# replace the current shell process with a login shell. + +set -euo pipefail +USER="${USER:-$( id -u )}" +SHELL="${SHELL:-$( getent passwd "${USER}" | cut -d : -f 7 )}" +if [ -z "${SHELL}" ] ; then + echo 1>&2 "${0}: can't set SHELL; giving up" + exit 1 +fi +HOME="${HOME:-$( getent passwd "${USER}" | cut -d : -f 6 )}" +if [ -z "${HOME}" ] ; then + echo 1>&2 "${0}: can't set HOME; giving up" + exit 1 +fi +cd "${HOME}" +SHELL="${SHELL}" exec -a "-${SHELL##*/}" "${SHELL}" From fa1388ca5a73fcc0c3221fa39acaf61576245d18 Mon Sep 17 00:00:00 2001 From: Chad Cravens Date: Fri, 12 May 2023 11:59:58 -0400 Subject: [PATCH 41/51] Added KubeZT and Analytics HQ as adopters --- ADOPTERS.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index ecc6b584d..f1decf6f2 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -18,9 +18,11 @@ If you're interested in getting your project added to the list either: Here's the list of projects using and adopting OpenZiti -| Project Name | Project Link | Logo | Description | -|---------------------------|-----------------------------------------------|----------|-----------------| -| NetFoundry | https://nfconsole.io/signup | | NetFoundry SaaS provides management, orchestrations, support, and SLAs for OpenZiti networks. | -| HackBunker | https://www.hackbunker.com/ | | To open up a Zero Trust conversation in the C-Suite and Boardrooms of Blue-chip companies with a suite of products. | -| DeltaSecure GmbH | https://deltasecure.de/ | | To provide Managed Security Operations Center services for small and medium-sized enterprises. Ziti overlay forms the basis for secure data transmission of customer data and within the SOC infrastructure. | -| Resulticks | https://www.resulticks.com/ | | Resulticks Zero Trust API delivery network which forms the core of Resulticks' omnichannel marketing automation platform is built on OpenZiti to form a private dark mesh network. | +| Project Name | Project Link | Logo | Description | +|----------------------------------|-----------------------------------------------|----------|-----------------| +| NetFoundry | https://nfconsole.io/signup | | NetFoundry SaaS provides management, orchestrations, support, and SLAs for OpenZiti networks. | +| HackBunker | https://www.hackbunker.com/ | | To open up a Zero Trust conversation in the C-Suite and Boardrooms of Blue-chip companies with a suite of products. | +| DeltaSecure GmbH | https://deltasecure.de/ | | To provide Managed Security Operations Center services for small and medium-sized enterprises. Ziti overlay forms the basis for secure data transmission of customer data and within the SOC infrastructure. | +| Resulticks | https://www.resulticks.com/ | | Resulticks Zero Trust API delivery network which forms the core of Resulticks' omnichannel marketing automation platform is built on OpenZiti to form a private dark mesh network. | +| KubeZT - Zero Trust Kubernetes | https://KubeZT.com/ | | KubeZT is an on-demand Kubernetes environment that enables developers to build and deploy highly secure applications for high-compliance organizations. | +| Analytics HQ | https://AnalyticsHQ.com/ | | Analytics HQ is a next-generation unified platform built for modern data management and advanced analytics. | From d9957f866e27051003a3fb1560523f0803413644 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Mon, 24 Apr 2023 18:59:17 -0400 Subject: [PATCH 42/51] Update deps and changelog --- CHANGELOG.md | 507 ++++++++++++----------------- changelogs/CHANGELOG.0.27.md | 308 ++++++++++++++++++ etc/ctrl.with.edge.yml | 8 + go.mod | 59 ++-- go.sum | 114 +++---- ziti/controller/delete_sessions.go | 2 - 6 files changed, 602 insertions(+), 396 deletions(-) create mode 100644 changelogs/CHANGELOG.0.27.md diff --git a/CHANGELOG.md b/CHANGELOG.md index ff9219546..494204107 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,11 @@ ## What's New -* github.com/openziti/ziti: [v0.27.9 -> v0.27.10](https://github.com/openziti/ziti/compare/v0.27.9...v0.27.10) - * [Issue #1013](https://github.com/openziti/ziti/issues/1013) - Stop regenerating a new password with each container 'down/up' cycle -* Added AMQP event writter for events +* Event changes + * Added AMQP event writter for events + * Add entity change events for auditing or external integration + * Add usage event filtering + * Add annotations to circuit events * CLI additions for `ziti` to login with certificates or external-jwt-signers * NOTE: ziti edge login flag changes: * `-c` flag has been changed to map to `--client-cert` @@ -13,311 +15,202 @@ * `-c/--client-cert` allows a certificate to be supplied to login (used with `-k/--client-key`) * `-k/--client-key` allows a key to be supplied to login (used with `-c/--client-cert`) -# Release 0.27.9 - -## What's New - -* Refactored the websocket transport to fix a concurrency issue -* v0.27.6 changed delete behaviors to error if the entity was not found. This release reverts that behavior. - -## Component Updates and Bug Fixes - -* github.com/openziti/channel/v2: [v2.0.53 -> v2.0.58](https://github.com/openziti/channel/compare/v2.0.53...v2.0.58) -* github.com/openziti/edge: [v0.24.228 -> v0.24.239](https://github.com/openziti/edge/compare/v0.24.228...v0.24.239) - * [Issue #1391](https://github.com/openziti/edge/issues/1391) - AuthPolicies for identities is missing a reference link - -* github.com/openziti/edge-api: [v0.25.9 -> v0.25.11](https://github.com/openziti/edge-api/compare/v0.25.9...v0.25.11) -* github.com/openziti/fabric: [v0.22.77 -> v0.22.87](https://github.com/openziti/fabric/compare/v0.22.77...v0.22.87) -* github.com/openziti/foundation/v2: [v2.0.18 -> v2.0.21](https://github.com/openziti/foundation/compare/v2.0.18...v2.0.21) -* github.com/openziti/identity: [v1.0.42 -> v1.0.45](https://github.com/openziti/identity/compare/v1.0.42...v1.0.45) -* github.com/openziti/runzmd: [v1.0.18 -> v1.0.20](https://github.com/openziti/runzmd/compare/v1.0.18...v1.0.20) -* github.com/openziti/storage: [v0.1.46 -> v0.1.49](https://github.com/openziti/storage/compare/v0.1.46...v0.1.49) -* github.com/openziti/transport/v2: [v2.0.68 -> v2.0.72](https://github.com/openziti/transport/compare/v2.0.68...v2.0.72) -* github.com/openziti/metrics: [v1.2.16 -> v1.2.19](https://github.com/openziti/metrics/compare/v1.2.16...v1.2.19) -* github.com/openziti/ziti: [v0.27.8 -> v0.27.9](https://github.com/openziti/ziti/compare/v0.27.8...v0.27.9) - -# Release 0.27.8 - -## What's New - -* CLI additions for auth policies and external JWT signers -* Performance improvements for listing services - -## Component Updates and Bug Fixes - -* github.com/openziti/edge: [v0.24.224 -> v0.24.228](https://github.com/openziti/edge/compare/v0.24.224...v0.24.228) - * [Issue #1388](https://github.com/openziti/edge/issues/1388) - Make better use of identity service indexes for service list - * [Issue #1386](https://github.com/openziti/edge/issues/1386) - PUT on identities results in an error and internal PANIC - -* github.com/openziti/fabric: [v0.22.76 -> v0.22.77](https://github.com/openziti/fabric/compare/v0.22.76...v0.22.77) -* github.com/openziti/storage: [v0.1.45 -> v0.1.46](https://github.com/openziti/storage/compare/v0.1.45...v0.1.46) -* github.com/openziti/ziti: [v0.27.7 -> v0.27.8](https://github.com/openziti/ziti/compare/v0.27.7...v0.27.8) - * [Issue #1064](https://github.com/openziti/ziti/issues/1064) - Support auth-policy assignments on identities via the CLI - * [Issue #1058](https://github.com/openziti/ziti/issues/1058) - Allow Auth Policy Create/Update/Delete via CLI - * [Issue #1059](https://github.com/openziti/ziti/issues/1059) - Expose Delete for Ext JWT Signers in CLI - -# Release 0.27.7 - -## What's New - -* This release updates the build to use Go 1.20 - -# Release 0.27.6 - -## What's New - -* Makes inspect CLI more discoverable by adding subcommands for inspectable values -* Adds new inspection allowing configs to be retrieved: `ziti fabric inspect config` -* Many improvements to edge-router/tunneler hosting performance with large numbers of hosted services - * Routers should no longer overwhelm controller while setting up or reestablishing hosting -* Adds ability to disable router -* Adds CLI command to compact offline bbolt database: `ziti ops db compact ` -* Adds CLI command to re-enroll edge routers: `ziti edge re-enroll edge-router` -* Routers can now be disabled. Connections to the controller from disabled routers will be rejected. - * Disable with: `ziti fabric update router --disabled` - * Enable with: `ziti fabric update router --disabled=false` - -## Component Updates and Bug Fixes - -* github.com/openziti/agent: [v1.0.8 -> v1.0.10](https://github.com/openziti/agent/compare/v1.0.8...v1.0.10) -* github.com/openziti/channel/v2: [v2.0.27 -> v2.0.53](https://github.com/openziti/channel/compare/v2.0.27...v2.0.53) - * [Issue #83](https://github.com/openziti/channel/issues/83) - Improve protocol mismatch error(s) - * [Issue #93](https://github.com/openziti/channel/issues/93) - Fix atomic 64-bit alignment error on arm devices - -* github.com/openziti/edge: [v0.24.125 -> v0.24.224](https://github.com/openziti/edge/compare/v0.24.125...v0.24.224) - * [Issue #1373](https://github.com/openziti/edge/issues/1373) - Add support for disabled flag to edge and transit routers - * [Issue #1374](https://github.com/openziti/edge/issues/1374) - Multiple MFA enrollments cannot be cleaned up by administrators - * [Issue #1336](https://github.com/openziti/edge/issues/1336) - xgress_edge_tunnel shouldn't stop/start host on control channel reconnect - * [Issue #1369](https://github.com/openziti/edge/issues/1369) - Add missing entity type id for TransitRouter - * [Issue #1366](https://github.com/openziti/edge/issues/1366) - Error message incorrectly state 'invalid api session' when it's an invalid session - * [Issue #1364](https://github.com/openziti/edge/issues/1364) - Cache api-sessions for tunneler router so we don't need to unnecessarily create new sessions - * [Issue #1362](https://github.com/openziti/edge/issues/1362) - Rate limit terminator creates for router/tunneler - * [Issue #1359](https://github.com/openziti/edge/issues/1359) - Sessions creates should be idempotent - * [Issue #1355](https://github.com/openziti/edge/issues/1355) - Handle duplicate create terminator requests if create terminator fails - * [Issue #1350](https://github.com/openziti/edge/issues/1350) - Router event processing can deadlock - * [Issue #1329](https://github.com/openziti/edge/issues/1329) - UDP connections can drop data if datagrams are > 10k in size - * [Issue #1310](https://github.com/openziti/edge/issues/1310) - Creating a cert backed ext-jwt-signer causes nil dereference - -* github.com/openziti/edge-api: [v0.25.6 -> v0.25.9](https://github.com/openziti/edge-api/compare/v0.25.6...v0.25.9) -* github.com/openziti/fabric: [v0.22.24 -> v0.22.76](https://github.com/openziti/fabric/compare/v0.22.24...v0.22.76) - * [Issue #651](https://github.com/openziti/fabric/issues/651) - Add router enable/disable mechanism - * [Issue #648](https://github.com/openziti/fabric/issues/648) - Add rate limiter pool to router for operations with potential to flood the controller - * [Issue #610](https://github.com/openziti/fabric/issues/610) - Fix router disconnect when endpoint removed from cluster - * [Issue #622](https://github.com/openziti/fabric/issues/622) - fatal error: concurrent map iteration and map write in logContext.WireEntry - * [Issue #507](https://github.com/openziti/fabric/issues/507) - Add configuration for control channel heartbeat - * [Issue #584](https://github.com/openziti/fabric/issues/584) - Add cluster events - * [Issue #599](https://github.com/openziti/fabric/issues/599) - Add release and transfer leadership commands - * [Issue #606](https://github.com/openziti/fabric/issues/606) - Ensure consistent use of peer address - * [Issue #598](https://github.com/openziti/fabric/issues/598) - Add support to fabric inspect to propagate inspect to other controllers - * [Issue #597](https://github.com/openziti/fabric/issues/597) - Make raft settings configurable - * [Issue #604](https://github.com/openziti/fabric/issues/604) - Don't create link dropped msg metric until channel bind time - * [Issue #638](https://github.com/openziti/fabric/issues/638) - Fix atomic 64-bit alignment error on arm devices - -* github.com/openziti/foundation/v2: [v2.0.10 -> v2.0.18](https://github.com/openziti/foundation/compare/v2.0.10...v2.0.18) -* github.com/openziti/identity: [v1.0.30 -> v1.0.42](https://github.com/openziti/identity/compare/v1.0.30...v1.0.42) -* github.com/openziti/runzmd: [v1.0.9 -> v1.0.18](https://github.com/openziti/runzmd/compare/v1.0.9...v1.0.18) -* github.com/openziti/sdk-golang: [v0.18.28 -> v0.18.76](https://github.com/openziti/sdk-golang/compare/v0.18.28...v0.18.76) - * [Issue #356](https://github.com/openziti/sdk-golang/issues/356) - sdk connections should respect net.Conn deadline related API specifications - -* github.com/openziti/storage: [v0.1.34 -> v0.1.45](https://github.com/openziti/storage/compare/v0.1.34...v0.1.45) -* github.com/openziti/transport/v2: [v2.0.51 -> v2.0.68](https://github.com/openziti/transport/compare/v2.0.51...v2.0.68) -* github.com/openziti/jwks: [v1.0.2 -> v1.0.3](https://github.com/openziti/jwks/compare/v1.0.2...v1.0.3) -* github.com/openziti/metrics: [v1.2.3 -> v1.2.16](https://github.com/openziti/metrics/compare/v1.2.3...v1.2.16) -* github.com/openziti/ziti: [v0.27.5 -> v0.27.6](https://github.com/openziti/ziti/compare/v0.27.5...v0.27.6) - * [Issue #1041](https://github.com/openziti/ziti/issues/1041) - Add ziti compact command to CLI - * [Issue #1032](https://github.com/openziti/ziti/issues/1032) - ziti edge create service fails silently if config names don't exist - * [Issue #1031](https://github.com/openziti/ziti/issues/1031) - Fixed quickstart bug with arm and arm64 ambiguity when running quickstart on arm architecture - -# Release 0.27.5 - -## What's New - -* Fixes an issue with `ziti` CLI when using a globally trusted CA -* Fixes bug where `ziti agent stack` was calling `ziti agent stats` -* ziti controller/router no longer compare the running version with - the latest from github by default. Set ZITI_CHECK_VERSION=true to - enable this behavior - -## Component Updates and Bug Fixes - -* github.com/openziti/edge: [v0.24.121 -> v0.24.125](https://github.com/openziti/edge/compare/v0.24.121...v0.24.125) -* github.com/openziti/fabric: [v0.22.20 -> v0.22.24](https://github.com/openziti/fabric/compare/v0.22.20...v0.22.24) - * [Issue #601](https://github.com/openziti/fabric/issues/601) - Only use endpoints file in router once endpoints have changed - * [Issue #583](https://github.com/openziti/fabric/issues/583) - Compress raft snapshots - -* github.com/openziti/sdk-golang: [v0.18.27 -> v0.18.28](https://github.com/openziti/sdk-golang/compare/v0.18.27...v0.18.28) -* github.com/openziti/storage: [v0.1.33 -> v0.1.34](https://github.com/openziti/storage/compare/v0.1.33...v0.1.34) -* github.com/openziti/ziti: [v0.27.4 -> v0.27.5](https://github.com/openziti/ziti/compare/v0.27.4...v0.27.5) - -# Release 0.27.4 - -## What's New - -This release contains a fix for a controller deadlock +## Event Changes + +### AMPQ Event Writer +Previously events could only be emitted to a file. They can now also be emitted to an AMQP endpoint. + +Example configuration: +``` +events: + jsonLogger: + subscriptions: + - type: fabric.circuits + handler: + type: amqp + format: json + url: "amqp://localhost:5672" + queue: ziti + durable: true //default:true + autoDelete: false //default:false + exclusive: false //default:false + noWait: false //default:false +``` + +### Entity Change Events +OpenZiti can now be configured to emit entity change events. These events describe the changes when entities stored in the +bbolt database are created, updated or deleted. + +Note that events are emitted during the transaction. They are emitted at the end, so it's unlikely, but possible that an event will be emitted for a change which is rolled back. For this reason a following event will emitted when the change is committed. If a system crashes after commit, but before the committed event can be emitted, it will be emitted on the next startup. + +Example configuration: + +``` +events: + jsonLogger: + subscriptions: + - type: entityChange + include: + - services + - identities + handler: + type: file + format: json + path: /tmp/ziti-events.log +``` + +See the related issue for discussion: https://github.com/openziti/fabric/issues/562 + +Example output: + +``` +{ + "namespace": "entityChange", + "eventId": "326faf6c-8123-42ae-9ed8-6fd9560eb567", + "eventType": "created", + "timestamp": "2023-05-11T21:41:47.128588927-04:00", + "metadata": { + "author": { + "type": "identity", + "id": "ji2Rt8KJ4", + "name": "Default Admin" + }, + "source": { + "type": "rest", + "auth": "edge", + "localAddr": "localhost:1280", + "remoteAddr": "127.0.0.1:37578", + "method": "POST" + }, + "version": "v0.0.0" + }, + "entityType": "services", + "isParentEvent": false, + "initialState": null, + "finalState": { + "id": "6S0bCGWb6yrAutXwSQaLiv", + "createdAt": "2023-05-12T01:41:47.128138887Z", + "updatedAt": "2023-05-12T01:41:47.128138887Z", + "tags": {}, + "isSystem": false, + "name": "test", + "terminatorStrategy": "smartrouting", + "roleAttributes": [ + "goodbye", + "hello" + ], + "configs": null, + "encryptionRequired": true + } +} + +{ + "namespace": "entityChange", + "eventId": "326faf6c-8123-42ae-9ed8-6fd9560eb567", + "eventType": "committed", + "timestamp": "2023-05-11T21:41:47.129235443-04:00" +} +``` + +### Usage Event Filtering +Usage events, version 3, can now be filtered based on type. + +The valid types include: + +* ingress.rx +* ingress.tx +* egress.rx +* egress.tx +* fabric.rx +* fabric.tx + +Example configuration: + +``` +events: + jsonLogger: + subscriptions: + - type: fabric.usage + version: 3 + include: + - ingress.rx + - egress.rx +``` + +### Circuit Event Annotations +Circuit events initiated from the edge are now annotated with clientId, hostId and serviceId, to match usage events. The client and host ids are identity ids. + +Example output: + +``` + { + "namespace": "fabric.circuits", + "version": 2, + "event_type": "created", + "circuit_id": "0CEjWYiw6", + "timestamp": "2023-05-05T11:44:03.242399585-04:00", + "client_id": "clhaq7u7600o4ucgdpxy9i4t1", + "service_id": "QARLLTKjqfLZytmSsIqba", + "terminator_id": "7ddcd421-2b00-4b49-9ac0-8c78fe388c30", + "instance_id": "", + "creation_timespan": 1014280, + "path": { + "nodes": [ + "U7OwPtfjg", + "a4rC9DrZ3" + ], + "links": [ + "7Ru3hoxsssZzUNOyvd8Jcb" + ], + "ingress_id": "K9lD", + "egress_id": "rQLK", + "initiator_local_addr": "100.64.0.1:1234", + "initiator_remote_addr": "100.64.0.1:37640", + "terminator_local_addr": "127.0.0.1:45566", + "terminator_remote_addr": "127.0.0.1:1234" + }, + "link_count": 1, + "path_cost": 392151, + "tags": { + "clientId": "U7OwPtfjg", + "hostId": "a4rC9DrZ3", + "serviceId": "QARLLTKjqfLZytmSsIqba" + } +} +``` ## Component Updates and Bug Fixes -* github.com/openziti/channel/v2: [v2.0.26 -> v2.0.27](https://github.com/openziti/channel/compare/v2.0.26...v2.0.27) -* github.com/openziti/edge: [v0.24.115 -> v0.24.121](https://github.com/openziti/edge/compare/v0.24.115...v0.24.121) - * [Issue #1303](https://github.com/openziti/edge/issues/1303) - Fix deadlock when flushing api session heartbeats - -* github.com/openziti/fabric: [v0.22.19 -> v0.22.20](https://github.com/openziti/fabric/compare/v0.22.19...v0.22.20) -* github.com/openziti/sdk-golang: [v0.18.26 -> v0.18.27](https://github.com/openziti/sdk-golang/compare/v0.18.26...v0.18.27) -* github.com/openziti/transport/v2: [v2.0.50 -> v2.0.51](https://github.com/openziti/transport/compare/v2.0.50...v2.0.51) -* github.com/openziti/ziti: [v0.27.3 -> v0.27.4](https://github.com/openziti/ziti/compare/v0.27.3...v0.27.4) - -# Release 0.27.3 - -## What's New - -* Docker images for `ziti` CLI - -* New Raft interaction commands - * `raft-leave` allows removal of controllers from the raft cluster - * `raft-list` lists all connected controllers and their version/connected status - * `fabric raft list-members` same info as the agent command, but over rest - -## Component Updates and Bug Fixes - -* github.com/openziti/agent: [v1.0.7 -> v1.0.8](https://github.com/openziti/agent/compare/v1.0.7...v1.0.8) -* github.com/openziti/channel/v2: [v2.0.25 -> v2.0.26](https://github.com/openziti/channel/compare/v2.0.25...v2.0.26) -* github.com/openziti/edge: [v0.24.95 -> v0.24.115](https://github.com/openziti/edge/compare/v0.24.95...v0.24.115) - * [Issue #1292](https://github.com/openziti/edge/issues/1292) - Support alternative tproxy configuration methods - -* github.com/openziti/edge-api: v0.25.6 (new) -* github.com/openziti/fabric: [v0.22.7 -> v0.22.19](https://github.com/openziti/fabric/compare/v0.22.7...v0.22.19) - * [Issue #592](https://github.com/openziti/fabric/issues/592) - Incoming "gateway" connections should be logged at a socket level - * [Issue #588](https://github.com/openziti/fabric/issues/588) - Make service events more consistent - * [Issue #589](https://github.com/openziti/fabric/issues/589) - Add duration to circuit updated and deleted events - * [Issue #508](https://github.com/openziti/fabric/issues/508) - Refactor router debug ops for multiple controllers - -* github.com/openziti/identity: [v1.0.29 -> v1.0.30](https://github.com/openziti/identity/compare/v1.0.29...v1.0.30) -* github.com/openziti/runzmd: [v1.0.7 -> v1.0.9](https://github.com/openziti/runzmd/compare/v1.0.7...v1.0.9) -* github.com/openziti/sdk-golang: [v0.18.21 -> v0.18.26](https://github.com/openziti/sdk-golang/compare/v0.18.21...v0.18.26) -* github.com/openziti/storage: [v0.1.31 -> v0.1.33](https://github.com/openziti/storage/compare/v0.1.31...v0.1.33) -* github.com/openziti/transport/v2: [v2.0.49 -> v2.0.50](https://github.com/openziti/transport/compare/v2.0.49...v2.0.50) -* github.com/openziti/ziti: [v0.27.2 -> v0.27.3](https://github.com/openziti/ziti/compare/v0.27.2...v0.27.3) - * [Issue #974](https://github.com/openziti/ziti/issues/974) - tunnel "host" and "proxy" modes shouldn't run the nameserver - * [Issue #972](https://github.com/openziti/ziti/issues/972) - tunnel segfault - -# Release 0.27.2 - -## What's New - -* Bug fixes - -## Component Updates and Bug Fixes - -* github.com/openziti/channel/v2: [v2.0.24 -> v2.0.25](https://github.com/openziti/channel/compare/v2.0.24...v2.0.25) -* github.com/openziti/edge: [v0.24.86 -> v0.24.95](https://github.com/openziti/edge/compare/v0.24.86...v0.24.95) - * [Issue #1282](https://github.com/openziti/edge/issues/1282) - Ensure entity count events can be configured to only be emitted on the leader - * [Issue #1279](https://github.com/openziti/edge/issues/1279) - Constrain config-type schema to accept only object types - -* github.com/openziti/fabric: [v0.22.1 -> v0.22.7](https://github.com/openziti/fabric/compare/v0.22.1...v0.22.7) - * [Issue #573](https://github.com/openziti/fabric/issues/573) - Ensure specific events aren't duplicated in raft cluster - * [Issue #577](https://github.com/openziti/fabric/issues/577) - JSON Event formatter isn't putting events on their own line - * [Issue #571](https://github.com/openziti/fabric/issues/571) - Move raft.advertiseAddress to ctrl for consistency - * [Issue #569](https://github.com/openziti/fabric/issues/569) - Support automatic migration and agent based migration - * [Issue #567](https://github.com/openziti/fabric/issues/567) - Remove link dropped_msg metrics for closed links - * [Issue #566](https://github.com/openziti/fabric/issues/566) - Link listeners aren't properly configuring channel out queue size - -* github.com/openziti/foundation/v2: [v2.0.9 -> v2.0.10](https://github.com/openziti/foundation/compare/v2.0.9...v2.0.10) -* github.com/openziti/identity: [v1.0.28 -> v1.0.29](https://github.com/openziti/identity/compare/v1.0.28...v1.0.29) -* github.com/openziti/sdk-golang: [v0.18.19 -> v0.18.21](https://github.com/openziti/sdk-golang/compare/v0.18.19...v0.18.21) -* github.com/openziti/storage: [v0.1.30 -> v0.1.31](https://github.com/openziti/storage/compare/v0.1.30...v0.1.31) -* github.com/openziti/transport/v2: [v2.0.48 -> v2.0.49](https://github.com/openziti/transport/compare/v2.0.48...v2.0.49) -* github.com/openziti/metrics: [v1.2.2 -> v1.2.3](https://github.com/openziti/metrics/compare/v1.2.2...v1.2.3) -* github.com/openziti/ziti: [v0.27.1 -> v0.27.2](https://github.com/openziti/ziti/compare/v0.27.1...v0.27.2) - * [Issue #916](https://github.com/openziti/ziti/issues/916) - Allow defining resource tags via json in the cli - - -# Release 0.27.1 - -## What's New - -* Event streaming over websocket - * `ziti fabric stream events` - * Events use same JSON formatting as the file based streaming - * Plain Text formatting removed - * Individual streaming of metrics/circuits removed in favor of unified events streaming -* Improvements to router/tunneler terminator creation - * Create terminator requests are now idempotent, so repeated requests will not result in multiple terminators - * Create terminator requests are now asynchronous, so responses will no longer get timed out - * There is new timer metric from routers, timing how long terminator creates take: `xgress_edge_tunnel.terminator.create_timer` - -## Component Updates and Bug Fixes - -* github.com/openziti/edge: [v0.24.75 -> v0.24.86](https://github.com/openziti/edge/compare/v0.24.75...v0.24.86) - * [Issue #1272](https://github.com/openziti/edge/issues/1272) - Mark xgress_edge and xgress_edge_tunnel created terminators as system entity - * [Issue #1270](https://github.com/openziti/edge/issues/1270) - Make xgress_edge_tunnel service hosting more scalabe - * [Issue #1268](https://github.com/openziti/edge/issues/1268) - session deletion can get stalled by restarts - -* github.com/openziti/fabric: [v0.21.36 -> v0.22.1](https://github.com/openziti/fabric/compare/v0.21.36...v0.22.1) - * [Issue #563](https://github.com/openziti/fabric/issues/563) - Allow streaming events over webscocket, replacing stream circuits and stream metrics - * [Issue #552](https://github.com/openziti/fabric/issues/552) - Add minimum cost delta for smart routing - * [Issue #558](https://github.com/openziti/fabric/issues/558) - Allow terminators to be marked as system entities - -* github.com/openziti/ziti: [v0.27.0 -> v0.27.1](https://github.com/openziti/ziti/compare/v0.27.0...v0.27.1) - * [Issue #928](https://github.com/openziti/ziti/issues/928) - ziti fabric update terminator should not require setting router - * [Issue #929](https://github.com/openziti/ziti/issues/929) - zit fabric list terminators isn't showing cost or dynamic cost - -# Release 0.27.0 - -## What's New - -* Ziti CLI - * The CLI has been cleaned up and unused, unusable and underused components have been removed or hidden - * Add create/delete transit-router CLI commands - * [Issue-706](https://github.com/openziti/ziti/issues/706) - Add port check to quickstart - -## Ziti CLI - -* The update command has been removed. It was non-functional, so this should not affect anyone -* The adhoc, ping and playbook commands have been removed. These were ansible and vagrant commands that were not widely used. -* Make the art command hidden, doesn't need to be removed, leave it as an easter egg -* Move ziti ps command under ziti agent. Remove all ziti ps subcommands, as they already exist as ziti agent subcommands -* Add `ziti controller` and `ziti router` commands - * They should work exactly the same as `ziti-controller` and `ziti router` - * The standalone binaries for `ziti-controller` and `ziti-router` are deprecated and will be removed in a future release -* Add hidden `ziti tunnel` command - * Should work exactly the same as `ziti-tunnel` - * Is hidden as `ziti-edge-tunnel` is the preferred tunnelling application - * The standalone binary `ziti-tunnel` is deprecated and will be removed in a future release -* The db, log-format and unwrap commands have been moved under a new ops command -* ziti executable download management has been deprecated - * The init and uninstall commands have been removed - * The install, upgrade, use and version commands have been hidden and will be hidden once tests using them are updated or replaced -* The demo and tutorial commands have been moved under the new learn subcommand -* `ziti edge enroll` now has a verbose option for additional debugging -* The `ziti edge` CLI now support create/delete transit-router. This allows transit/fabric routers to be provisioned using an enrollment process, rather than requiring certs to be created externally. Note that this requires that the fabric router config file has a `csr` section. - -## Component Updates and Bug Fixes - -* github.com/openziti/agent: [v1.0.5 -> v1.0.7](https://github.com/openziti/agent/compare/v1.0.5...v1.0.7) -* github.com/openziti/channel/v2: [v2.0.12 -> v2.0.24](https://github.com/openziti/channel/compare/v2.0.12...v2.0.24) -* github.com/openziti/edge: [v0.24.36 -> v0.24.75](https://github.com/openziti/edge/compare/v0.24.36...v0.24.75) - * [Issue #1253](https://github.com/openziti/edge/issues/1253) - Panic in controller getting hello from edge router - * [Issue #1233](https://github.com/openziti/edge/issues/1233) - edge-routers ref link in identities endpoint is incorrectly keyed - * [Issue #1234](https://github.com/openziti/edge/issues/1234) - identities missing service-config link ref - * [Issue #1232](https://github.com/openziti/edge/issues/1232) - edge management api identity-types endpoint produces incorrect links - -* github.com/openziti/fabric: [v0.21.17 -> v0.21.36](https://github.com/openziti/fabric/compare/v0.21.17...v0.21.36) - * [Issue #525](https://github.com/openziti/fabric/issues/525) - Update metrics message propagation from router to controller for HA - -* github.com/openziti/foundation/v2: [v2.0.7 -> v2.0.9](https://github.com/openziti/foundation/compare/v2.0.7...v2.0.9) -* github.com/openziti/identity: [v1.0.20 -> v1.0.28](https://github.com/openziti/identity/compare/v1.0.20...v1.0.28) -* github.com/openziti/runzmd: [v1.0.3 -> v1.0.7](https://github.com/openziti/runzmd/compare/v1.0.3...v1.0.7) -* github.com/openziti/sdk-golang: [v0.16.146 -> v0.18.19](https://github.com/openziti/sdk-golang/compare/v0.16.146...v0.18.19) -* github.com/openziti/storage: [v0.1.26 -> v0.1.30](https://github.com/openziti/storage/compare/v0.1.26...v0.1.30) -* github.com/openziti/transport/v2: [v2.0.38 -> v2.0.48](https://github.com/openziti/transport/compare/v2.0.38...v2.0.48) -* github.com/openziti/metrics: [v1.1.5 -> v1.2.2](https://github.com/openziti/metrics/compare/v1.1.5...v1.2.2) -* github.com/openziti/ziti: [v0.26.11 -> v0.26.12](https://github.com/openziti/ziti/compare/v0.26.11...v0.26.12) - * [Issue #892](https://github.com/openziti/ziti/issues/892) - Add timeout to ziti agent controller snapshot-db command - * [Issue #917](https://github.com/openziti/ziti/issues/917) - ZITI_BIN_ROOT is incorrect in docker env - * [Issue #912](https://github.com/openziti/ziti/issues/912) - Binaries not updated in docker-compose env with new image - * [Issue #897](https://github.com/openziti/ziti/issues/897) - Add CLI options to manage /edge/v1/transit-routers - * [Issue #706](https://github.com/openziti/ziti/issues/706) - Add port check to quickstart - -# Older Changelogs +* github.com/openziti/channel/v2: [v2.0.58 -> v2.0.64](https://github.com/openziti/channel/compare/v2.0.58...v2.0.64) + * [Issue #98](https://github.com/openziti/channel/issues/98) - Set default connect timeout to 5 seconds + +* github.com/openziti/edge: [v0.24.239 -> v0.24.266](https://github.com/openziti/edge/compare/v0.24.239...v0.24.266) + * [Issue #1471](https://github.com/openziti/edge/issues/1471) - UDP intercept connections report incorrect local/remote addresses, making confusing events + * [Issue #629](https://github.com/openziti/edge/issues/629) - emit entity change events + * [Issue #1295](https://github.com/openziti/edge/issues/1295) - Ensure DB migrations work properly in a clustered setup (edge) + * [Issue #1418](https://github.com/openziti/edge/issues/1418) - Checks for session edge router availablility are inefficient + +* github.com/openziti/edge-api: [v0.25.11 -> v0.25.18](https://github.com/openziti/edge-api/compare/v0.25.11...v0.25.18) +* github.com/openziti/fabric: [v0.22.87 -> v0.23.11](https://github.com/openziti/fabric/compare/v0.22.87...v0.23.11) + * [Issue #706](https://github.com/openziti/fabric/issues/706) - Fix panic in link close + * [Issue #700](https://github.com/openziti/fabric/issues/700) - Additional Health Checks exposed on Edge Router + * [Issue #595](https://github.com/openziti/fabric/issues/595) - Add include filtering for V3 usage metrics + * [Issue #684](https://github.com/openziti/fabric/issues/684) - Add tag annotations to circuit events, similar to usage events + * [Issue #562](https://github.com/openziti/fabric/issues/562) - Add entity change events + * [Issue #677](https://github.com/openziti/fabric/issues/677) - Rework raft startup + * [Issue #582](https://github.com/openziti/fabric/issues/582) - Ensure DB migrations work properly in a clustered setup (fabric) + * [Issue #668](https://github.com/openziti/fabric/issues/668) - Add network.Run watchdog, to warn if processing is delayed + +* github.com/openziti/foundation/v2: [v2.0.21 -> v2.0.22](https://github.com/openziti/foundation/compare/v2.0.21...v2.0.22) +* github.com/openziti/identity: [v1.0.45 -> v1.0.48](https://github.com/openziti/identity/compare/v1.0.45...v1.0.48) +* github.com/openziti/runzmd: [v1.0.20 -> v1.0.21](https://github.com/openziti/runzmd/compare/v1.0.20...v1.0.21) +* github.com/openziti/sdk-golang: [v0.18.76 -> v0.20.20](https://github.com/openziti/sdk-golang/compare/v0.18.76...v0.20.20) +* github.com/openziti/storage: [v0.1.49 -> v0.2.2](https://github.com/openziti/storage/compare/v0.1.49...v0.2.2) +* github.com/openziti/transport/v2: [v2.0.72 -> v2.0.77](https://github.com/openziti/transport/compare/v2.0.72...v2.0.77) +* github.com/openziti/metrics: [v1.2.19 -> v1.2.21](https://github.com/openziti/metrics/compare/v1.2.19...v1.2.21) +* github.com/openziti/secretstream: v0.1.7 (new) +* github.com/openziti/ziti: [v0.27.9 -> v0.28.0](https://github.com/openziti/ziti/compare/v0.27.9...v0.28.0) + * [Issue #1087](https://github.com/openziti/ziti/issues/1087) - re-enable CI in forks + * [Issue #1013](https://github.com/openziti/ziti/issues/1013) - docker env password is renewed at each `docker-compose up` + * [Issue #1077](https://github.com/openziti/ziti/issues/1077) - Show auth-policy name on identity list instead of id -Changelogs for previous releases can be found in [changelogs](./changelogs). diff --git a/changelogs/CHANGELOG.0.27.md b/changelogs/CHANGELOG.0.27.md new file mode 100644 index 000000000..6be2fda5d --- /dev/null +++ b/changelogs/CHANGELOG.0.27.md @@ -0,0 +1,308 @@ +# Release 0.27.9 + +## What's New + +* Refactored the websocket transport to fix a concurrency issue +* v0.27.6 changed delete behaviors to error if the entity was not found. This release reverts that behavior. + +## Component Updates and Bug Fixes + +* github.com/openziti/channel/v2: [v2.0.53 -> v2.0.58](https://github.com/openziti/channel/compare/v2.0.53...v2.0.58) +* github.com/openziti/edge: [v0.24.228 -> v0.24.239](https://github.com/openziti/edge/compare/v0.24.228...v0.24.239) + * [Issue #1391](https://github.com/openziti/edge/issues/1391) - AuthPolicies for identities is missing a reference link + +* github.com/openziti/edge-api: [v0.25.9 -> v0.25.11](https://github.com/openziti/edge-api/compare/v0.25.9...v0.25.11) +* github.com/openziti/fabric: [v0.22.77 -> v0.22.87](https://github.com/openziti/fabric/compare/v0.22.77...v0.22.87) +* github.com/openziti/foundation/v2: [v2.0.18 -> v2.0.21](https://github.com/openziti/foundation/compare/v2.0.18...v2.0.21) +* github.com/openziti/identity: [v1.0.42 -> v1.0.45](https://github.com/openziti/identity/compare/v1.0.42...v1.0.45) +* github.com/openziti/runzmd: [v1.0.18 -> v1.0.20](https://github.com/openziti/runzmd/compare/v1.0.18...v1.0.20) +* github.com/openziti/storage: [v0.1.46 -> v0.1.49](https://github.com/openziti/storage/compare/v0.1.46...v0.1.49) +* github.com/openziti/transport/v2: [v2.0.68 -> v2.0.72](https://github.com/openziti/transport/compare/v2.0.68...v2.0.72) +* github.com/openziti/metrics: [v1.2.16 -> v1.2.19](https://github.com/openziti/metrics/compare/v1.2.16...v1.2.19) +* github.com/openziti/ziti: [v0.27.8 -> v0.27.9](https://github.com/openziti/ziti/compare/v0.27.8...v0.27.9) + +# Release 0.27.8 + +## What's New + +* CLI additions for auth policies and external JWT signers +* Performance improvements for listing services + +## Component Updates and Bug Fixes + +* github.com/openziti/edge: [v0.24.224 -> v0.24.228](https://github.com/openziti/edge/compare/v0.24.224...v0.24.228) + * [Issue #1388](https://github.com/openziti/edge/issues/1388) - Make better use of identity service indexes for service list + * [Issue #1386](https://github.com/openziti/edge/issues/1386) - PUT on identities results in an error and internal PANIC + +* github.com/openziti/fabric: [v0.22.76 -> v0.22.77](https://github.com/openziti/fabric/compare/v0.22.76...v0.22.77) +* github.com/openziti/storage: [v0.1.45 -> v0.1.46](https://github.com/openziti/storage/compare/v0.1.45...v0.1.46) +* github.com/openziti/ziti: [v0.27.7 -> v0.27.8](https://github.com/openziti/ziti/compare/v0.27.7...v0.27.8) + * [Issue #1064](https://github.com/openziti/ziti/issues/1064) - Support auth-policy assignments on identities via the CLI + * [Issue #1058](https://github.com/openziti/ziti/issues/1058) - Allow Auth Policy Create/Update/Delete via CLI + * [Issue #1059](https://github.com/openziti/ziti/issues/1059) - Expose Delete for Ext JWT Signers in CLI + +# Release 0.27.7 + +## What's New + +* This release updates the build to use Go 1.20 + +# Release 0.27.6 + +## What's New + +* Makes inspect CLI more discoverable by adding subcommands for inspectable values +* Adds new inspection allowing configs to be retrieved: `ziti fabric inspect config` +* Many improvements to edge-router/tunneler hosting performance with large numbers of hosted services + * Routers should no longer overwhelm controller while setting up or reestablishing hosting +* Adds ability to disable router +* Adds CLI command to compact offline bbolt database: `ziti ops db compact ` +* Adds CLI command to re-enroll edge routers: `ziti edge re-enroll edge-router` +* Routers can now be disabled. Connections to the controller from disabled routers will be rejected. + * Disable with: `ziti fabric update router --disabled` + * Enable with: `ziti fabric update router --disabled=false` + +## Component Updates and Bug Fixes + +* github.com/openziti/agent: [v1.0.8 -> v1.0.10](https://github.com/openziti/agent/compare/v1.0.8...v1.0.10) +* github.com/openziti/channel/v2: [v2.0.27 -> v2.0.53](https://github.com/openziti/channel/compare/v2.0.27...v2.0.53) + * [Issue #83](https://github.com/openziti/channel/issues/83) - Improve protocol mismatch error(s) + * [Issue #93](https://github.com/openziti/channel/issues/93) - Fix atomic 64-bit alignment error on arm devices + +* github.com/openziti/edge: [v0.24.125 -> v0.24.224](https://github.com/openziti/edge/compare/v0.24.125...v0.24.224) + * [Issue #1373](https://github.com/openziti/edge/issues/1373) - Add support for disabled flag to edge and transit routers + * [Issue #1374](https://github.com/openziti/edge/issues/1374) - Multiple MFA enrollments cannot be cleaned up by administrators + * [Issue #1336](https://github.com/openziti/edge/issues/1336) - xgress_edge_tunnel shouldn't stop/start host on control channel reconnect + * [Issue #1369](https://github.com/openziti/edge/issues/1369) - Add missing entity type id for TransitRouter + * [Issue #1366](https://github.com/openziti/edge/issues/1366) - Error message incorrectly state 'invalid api session' when it's an invalid session + * [Issue #1364](https://github.com/openziti/edge/issues/1364) - Cache api-sessions for tunneler router so we don't need to unnecessarily create new sessions + * [Issue #1362](https://github.com/openziti/edge/issues/1362) - Rate limit terminator creates for router/tunneler + * [Issue #1359](https://github.com/openziti/edge/issues/1359) - Sessions creates should be idempotent + * [Issue #1355](https://github.com/openziti/edge/issues/1355) - Handle duplicate create terminator requests if create terminator fails + * [Issue #1350](https://github.com/openziti/edge/issues/1350) - Router event processing can deadlock + * [Issue #1329](https://github.com/openziti/edge/issues/1329) - UDP connections can drop data if datagrams are > 10k in size + * [Issue #1310](https://github.com/openziti/edge/issues/1310) - Creating a cert backed ext-jwt-signer causes nil dereference + +* github.com/openziti/edge-api: [v0.25.6 -> v0.25.9](https://github.com/openziti/edge-api/compare/v0.25.6...v0.25.9) +* github.com/openziti/fabric: [v0.22.24 -> v0.22.76](https://github.com/openziti/fabric/compare/v0.22.24...v0.22.76) + * [Issue #651](https://github.com/openziti/fabric/issues/651) - Add router enable/disable mechanism + * [Issue #648](https://github.com/openziti/fabric/issues/648) - Add rate limiter pool to router for operations with potential to flood the controller + * [Issue #610](https://github.com/openziti/fabric/issues/610) - Fix router disconnect when endpoint removed from cluster + * [Issue #622](https://github.com/openziti/fabric/issues/622) - fatal error: concurrent map iteration and map write in logContext.WireEntry + * [Issue #507](https://github.com/openziti/fabric/issues/507) - Add configuration for control channel heartbeat + * [Issue #584](https://github.com/openziti/fabric/issues/584) - Add cluster events + * [Issue #599](https://github.com/openziti/fabric/issues/599) - Add release and transfer leadership commands + * [Issue #606](https://github.com/openziti/fabric/issues/606) - Ensure consistent use of peer address + * [Issue #598](https://github.com/openziti/fabric/issues/598) - Add support to fabric inspect to propagate inspect to other controllers + * [Issue #597](https://github.com/openziti/fabric/issues/597) - Make raft settings configurable + * [Issue #604](https://github.com/openziti/fabric/issues/604) - Don't create link dropped msg metric until channel bind time + * [Issue #638](https://github.com/openziti/fabric/issues/638) - Fix atomic 64-bit alignment error on arm devices + +* github.com/openziti/foundation/v2: [v2.0.10 -> v2.0.18](https://github.com/openziti/foundation/compare/v2.0.10...v2.0.18) +* github.com/openziti/identity: [v1.0.30 -> v1.0.42](https://github.com/openziti/identity/compare/v1.0.30...v1.0.42) +* github.com/openziti/runzmd: [v1.0.9 -> v1.0.18](https://github.com/openziti/runzmd/compare/v1.0.9...v1.0.18) +* github.com/openziti/sdk-golang: [v0.18.28 -> v0.18.76](https://github.com/openziti/sdk-golang/compare/v0.18.28...v0.18.76) + * [Issue #356](https://github.com/openziti/sdk-golang/issues/356) - sdk connections should respect net.Conn deadline related API specifications + +* github.com/openziti/storage: [v0.1.34 -> v0.1.45](https://github.com/openziti/storage/compare/v0.1.34...v0.1.45) +* github.com/openziti/transport/v2: [v2.0.51 -> v2.0.68](https://github.com/openziti/transport/compare/v2.0.51...v2.0.68) +* github.com/openziti/jwks: [v1.0.2 -> v1.0.3](https://github.com/openziti/jwks/compare/v1.0.2...v1.0.3) +* github.com/openziti/metrics: [v1.2.3 -> v1.2.16](https://github.com/openziti/metrics/compare/v1.2.3...v1.2.16) +* github.com/openziti/ziti: [v0.27.5 -> v0.27.6](https://github.com/openziti/ziti/compare/v0.27.5...v0.27.6) + * [Issue #1041](https://github.com/openziti/ziti/issues/1041) - Add ziti compact command to CLI + * [Issue #1032](https://github.com/openziti/ziti/issues/1032) - ziti edge create service fails silently if config names don't exist + * [Issue #1031](https://github.com/openziti/ziti/issues/1031) - Fixed quickstart bug with arm and arm64 ambiguity when running quickstart on arm architecture + +# Release 0.27.5 + +## What's New + +* Fixes an issue with `ziti` CLI when using a globally trusted CA +* Fixes bug where `ziti agent stack` was calling `ziti agent stats` +* ziti controller/router no longer compare the running version with + the latest from github by default. Set ZITI_CHECK_VERSION=true to + enable this behavior + +## Component Updates and Bug Fixes + +* github.com/openziti/edge: [v0.24.121 -> v0.24.125](https://github.com/openziti/edge/compare/v0.24.121...v0.24.125) +* github.com/openziti/fabric: [v0.22.20 -> v0.22.24](https://github.com/openziti/fabric/compare/v0.22.20...v0.22.24) + * [Issue #601](https://github.com/openziti/fabric/issues/601) - Only use endpoints file in router once endpoints have changed + * [Issue #583](https://github.com/openziti/fabric/issues/583) - Compress raft snapshots + +* github.com/openziti/sdk-golang: [v0.18.27 -> v0.18.28](https://github.com/openziti/sdk-golang/compare/v0.18.27...v0.18.28) +* github.com/openziti/storage: [v0.1.33 -> v0.1.34](https://github.com/openziti/storage/compare/v0.1.33...v0.1.34) +* github.com/openziti/ziti: [v0.27.4 -> v0.27.5](https://github.com/openziti/ziti/compare/v0.27.4...v0.27.5) + +# Release 0.27.4 + +## What's New + +This release contains a fix for a controller deadlock + +## Component Updates and Bug Fixes + +* github.com/openziti/channel/v2: [v2.0.26 -> v2.0.27](https://github.com/openziti/channel/compare/v2.0.26...v2.0.27) +* github.com/openziti/edge: [v0.24.115 -> v0.24.121](https://github.com/openziti/edge/compare/v0.24.115...v0.24.121) + * [Issue #1303](https://github.com/openziti/edge/issues/1303) - Fix deadlock when flushing api session heartbeats + +* github.com/openziti/fabric: [v0.22.19 -> v0.22.20](https://github.com/openziti/fabric/compare/v0.22.19...v0.22.20) +* github.com/openziti/sdk-golang: [v0.18.26 -> v0.18.27](https://github.com/openziti/sdk-golang/compare/v0.18.26...v0.18.27) +* github.com/openziti/transport/v2: [v2.0.50 -> v2.0.51](https://github.com/openziti/transport/compare/v2.0.50...v2.0.51) +* github.com/openziti/ziti: [v0.27.3 -> v0.27.4](https://github.com/openziti/ziti/compare/v0.27.3...v0.27.4) + +# Release 0.27.3 + +## What's New + +* Docker images for `ziti` CLI + +* New Raft interaction commands + * `raft-leave` allows removal of controllers from the raft cluster + * `raft-list` lists all connected controllers and their version/connected status + * `fabric raft list-members` same info as the agent command, but over rest + +## Component Updates and Bug Fixes + +* github.com/openziti/agent: [v1.0.7 -> v1.0.8](https://github.com/openziti/agent/compare/v1.0.7...v1.0.8) +* github.com/openziti/channel/v2: [v2.0.25 -> v2.0.26](https://github.com/openziti/channel/compare/v2.0.25...v2.0.26) +* github.com/openziti/edge: [v0.24.95 -> v0.24.115](https://github.com/openziti/edge/compare/v0.24.95...v0.24.115) + * [Issue #1292](https://github.com/openziti/edge/issues/1292) - Support alternative tproxy configuration methods + +* github.com/openziti/edge-api: v0.25.6 (new) +* github.com/openziti/fabric: [v0.22.7 -> v0.22.19](https://github.com/openziti/fabric/compare/v0.22.7...v0.22.19) + * [Issue #592](https://github.com/openziti/fabric/issues/592) - Incoming "gateway" connections should be logged at a socket level + * [Issue #588](https://github.com/openziti/fabric/issues/588) - Make service events more consistent + * [Issue #589](https://github.com/openziti/fabric/issues/589) - Add duration to circuit updated and deleted events + * [Issue #508](https://github.com/openziti/fabric/issues/508) - Refactor router debug ops for multiple controllers + +* github.com/openziti/identity: [v1.0.29 -> v1.0.30](https://github.com/openziti/identity/compare/v1.0.29...v1.0.30) +* github.com/openziti/runzmd: [v1.0.7 -> v1.0.9](https://github.com/openziti/runzmd/compare/v1.0.7...v1.0.9) +* github.com/openziti/sdk-golang: [v0.18.21 -> v0.18.26](https://github.com/openziti/sdk-golang/compare/v0.18.21...v0.18.26) +* github.com/openziti/storage: [v0.1.31 -> v0.1.33](https://github.com/openziti/storage/compare/v0.1.31...v0.1.33) +* github.com/openziti/transport/v2: [v2.0.49 -> v2.0.50](https://github.com/openziti/transport/compare/v2.0.49...v2.0.50) +* github.com/openziti/ziti: [v0.27.2 -> v0.27.3](https://github.com/openziti/ziti/compare/v0.27.2...v0.27.3) + * [Issue #974](https://github.com/openziti/ziti/issues/974) - tunnel "host" and "proxy" modes shouldn't run the nameserver + * [Issue #972](https://github.com/openziti/ziti/issues/972) - tunnel segfault + +# Release 0.27.2 + +## What's New + +* Bug fixes + +## Component Updates and Bug Fixes + +* github.com/openziti/channel/v2: [v2.0.24 -> v2.0.25](https://github.com/openziti/channel/compare/v2.0.24...v2.0.25) +* github.com/openziti/edge: [v0.24.86 -> v0.24.95](https://github.com/openziti/edge/compare/v0.24.86...v0.24.95) + * [Issue #1282](https://github.com/openziti/edge/issues/1282) - Ensure entity count events can be configured to only be emitted on the leader + * [Issue #1279](https://github.com/openziti/edge/issues/1279) - Constrain config-type schema to accept only object types + +* github.com/openziti/fabric: [v0.22.1 -> v0.22.7](https://github.com/openziti/fabric/compare/v0.22.1...v0.22.7) + * [Issue #573](https://github.com/openziti/fabric/issues/573) - Ensure specific events aren't duplicated in raft cluster + * [Issue #577](https://github.com/openziti/fabric/issues/577) - JSON Event formatter isn't putting events on their own line + * [Issue #571](https://github.com/openziti/fabric/issues/571) - Move raft.advertiseAddress to ctrl for consistency + * [Issue #569](https://github.com/openziti/fabric/issues/569) - Support automatic migration and agent based migration + * [Issue #567](https://github.com/openziti/fabric/issues/567) - Remove link dropped_msg metrics for closed links + * [Issue #566](https://github.com/openziti/fabric/issues/566) - Link listeners aren't properly configuring channel out queue size + +* github.com/openziti/foundation/v2: [v2.0.9 -> v2.0.10](https://github.com/openziti/foundation/compare/v2.0.9...v2.0.10) +* github.com/openziti/identity: [v1.0.28 -> v1.0.29](https://github.com/openziti/identity/compare/v1.0.28...v1.0.29) +* github.com/openziti/sdk-golang: [v0.18.19 -> v0.18.21](https://github.com/openziti/sdk-golang/compare/v0.18.19...v0.18.21) +* github.com/openziti/storage: [v0.1.30 -> v0.1.31](https://github.com/openziti/storage/compare/v0.1.30...v0.1.31) +* github.com/openziti/transport/v2: [v2.0.48 -> v2.0.49](https://github.com/openziti/transport/compare/v2.0.48...v2.0.49) +* github.com/openziti/metrics: [v1.2.2 -> v1.2.3](https://github.com/openziti/metrics/compare/v1.2.2...v1.2.3) +* github.com/openziti/ziti: [v0.27.1 -> v0.27.2](https://github.com/openziti/ziti/compare/v0.27.1...v0.27.2) + * [Issue #916](https://github.com/openziti/ziti/issues/916) - Allow defining resource tags via json in the cli + + +# Release 0.27.1 + +## What's New + +* Event streaming over websocket + * `ziti fabric stream events` + * Events use same JSON formatting as the file based streaming + * Plain Text formatting removed + * Individual streaming of metrics/circuits removed in favor of unified events streaming +* Improvements to router/tunneler terminator creation + * Create terminator requests are now idempotent, so repeated requests will not result in multiple terminators + * Create terminator requests are now asynchronous, so responses will no longer get timed out + * There is new timer metric from routers, timing how long terminator creates take: `xgress_edge_tunnel.terminator.create_timer` + +## Component Updates and Bug Fixes + +* github.com/openziti/edge: [v0.24.75 -> v0.24.86](https://github.com/openziti/edge/compare/v0.24.75...v0.24.86) + * [Issue #1272](https://github.com/openziti/edge/issues/1272) - Mark xgress_edge and xgress_edge_tunnel created terminators as system entity + * [Issue #1270](https://github.com/openziti/edge/issues/1270) - Make xgress_edge_tunnel service hosting more scalabe + * [Issue #1268](https://github.com/openziti/edge/issues/1268) - session deletion can get stalled by restarts + +* github.com/openziti/fabric: [v0.21.36 -> v0.22.1](https://github.com/openziti/fabric/compare/v0.21.36...v0.22.1) + * [Issue #563](https://github.com/openziti/fabric/issues/563) - Allow streaming events over webscocket, replacing stream circuits and stream metrics + * [Issue #552](https://github.com/openziti/fabric/issues/552) - Add minimum cost delta for smart routing + * [Issue #558](https://github.com/openziti/fabric/issues/558) - Allow terminators to be marked as system entities + +* github.com/openziti/ziti: [v0.27.0 -> v0.27.1](https://github.com/openziti/ziti/compare/v0.27.0...v0.27.1) + * [Issue #928](https://github.com/openziti/ziti/issues/928) - ziti fabric update terminator should not require setting router + * [Issue #929](https://github.com/openziti/ziti/issues/929) - zit fabric list terminators isn't showing cost or dynamic cost + +# Release 0.27.0 + +## What's New + +* Ziti CLI + * The CLI has been cleaned up and unused, unusable and underused components have been removed or hidden + * Add create/delete transit-router CLI commands + * [Issue-706](https://github.com/openziti/ziti/issues/706) - Add port check to quickstart + +## Ziti CLI + +* The update command has been removed. It was non-functional, so this should not affect anyone +* The adhoc, ping and playbook commands have been removed. These were ansible and vagrant commands that were not widely used. +* Make the art command hidden, doesn't need to be removed, leave it as an easter egg +* Move ziti ps command under ziti agent. Remove all ziti ps subcommands, as they already exist as ziti agent subcommands +* Add `ziti controller` and `ziti router` commands + * They should work exactly the same as `ziti-controller` and `ziti router` + * The standalone binaries for `ziti-controller` and `ziti-router` are deprecated and will be removed in a future release +* Add hidden `ziti tunnel` command + * Should work exactly the same as `ziti-tunnel` + * Is hidden as `ziti-edge-tunnel` is the preferred tunnelling application + * The standalone binary `ziti-tunnel` is deprecated and will be removed in a future release +* The db, log-format and unwrap commands have been moved under a new ops command +* ziti executable download management has been deprecated + * The init and uninstall commands have been removed + * The install, upgrade, use and version commands have been hidden and will be hidden once tests using them are updated or replaced +* The demo and tutorial commands have been moved under the new learn subcommand +* `ziti edge enroll` now has a verbose option for additional debugging +* The `ziti edge` CLI now support create/delete transit-router. This allows transit/fabric routers to be provisioned using an enrollment process, rather than requiring certs to be created externally. Note that this requires that the fabric router config file has a `csr` section. + +## Component Updates and Bug Fixes + +* github.com/openziti/agent: [v1.0.5 -> v1.0.7](https://github.com/openziti/agent/compare/v1.0.5...v1.0.7) +* github.com/openziti/channel/v2: [v2.0.12 -> v2.0.24](https://github.com/openziti/channel/compare/v2.0.12...v2.0.24) +* github.com/openziti/edge: [v0.24.36 -> v0.24.75](https://github.com/openziti/edge/compare/v0.24.36...v0.24.75) + * [Issue #1253](https://github.com/openziti/edge/issues/1253) - Panic in controller getting hello from edge router + * [Issue #1233](https://github.com/openziti/edge/issues/1233) - edge-routers ref link in identities endpoint is incorrectly keyed + * [Issue #1234](https://github.com/openziti/edge/issues/1234) - identities missing service-config link ref + * [Issue #1232](https://github.com/openziti/edge/issues/1232) - edge management api identity-types endpoint produces incorrect links + +* github.com/openziti/fabric: [v0.21.17 -> v0.21.36](https://github.com/openziti/fabric/compare/v0.21.17...v0.21.36) + * [Issue #525](https://github.com/openziti/fabric/issues/525) - Update metrics message propagation from router to controller for HA + +* github.com/openziti/foundation/v2: [v2.0.7 -> v2.0.9](https://github.com/openziti/foundation/compare/v2.0.7...v2.0.9) +* github.com/openziti/identity: [v1.0.20 -> v1.0.28](https://github.com/openziti/identity/compare/v1.0.20...v1.0.28) +* github.com/openziti/runzmd: [v1.0.3 -> v1.0.7](https://github.com/openziti/runzmd/compare/v1.0.3...v1.0.7) +* github.com/openziti/sdk-golang: [v0.16.146 -> v0.18.19](https://github.com/openziti/sdk-golang/compare/v0.16.146...v0.18.19) +* github.com/openziti/storage: [v0.1.26 -> v0.1.30](https://github.com/openziti/storage/compare/v0.1.26...v0.1.30) +* github.com/openziti/transport/v2: [v2.0.38 -> v2.0.48](https://github.com/openziti/transport/compare/v2.0.38...v2.0.48) +* github.com/openziti/metrics: [v1.1.5 -> v1.2.2](https://github.com/openziti/metrics/compare/v1.1.5...v1.2.2) +* github.com/openziti/ziti: [v0.26.11 -> v0.26.12](https://github.com/openziti/ziti/compare/v0.26.11...v0.26.12) + * [Issue #892](https://github.com/openziti/ziti/issues/892) - Add timeout to ziti agent controller snapshot-db command + * [Issue #917](https://github.com/openziti/ziti/issues/917) - ZITI_BIN_ROOT is incorrect in docker env + * [Issue #912](https://github.com/openziti/ziti/issues/912) - Binaries not updated in docker-compose env with new image + * [Issue #897](https://github.com/openziti/ziti/issues/897) - Add CLI options to manage /edge/v1/transit-routers + * [Issue #706](https://github.com/openziti/ziti/issues/706) - Add port check to quickstart + +# Older Changelogs + +Changelogs for previous releases can be found in [changelogs](./changelogs). diff --git a/etc/ctrl.with.edge.yml b/etc/ctrl.with.edge.yml index 221785737..fb4a90fe1 100644 --- a/etc/ctrl.with.edge.yml +++ b/etc/ctrl.with.edge.yml @@ -50,6 +50,10 @@ ctrl: #events: # jsonLogger: # subscriptions: +# - type: entityChange +# include: +# - services +# - identities # - type: fabric.circuits # - type: fabric.links # - type: fabric.routers @@ -60,6 +64,10 @@ ctrl: # - type: edge.sessions # - type: edge.apiSessions # - type: fabric.usage +# version: 3 +# include: +# - ingress.rx +# - egress.rx # - type: services # - type: edge.entityCounts # interval: 5s diff --git a/go.mod b/go.mod index 2604785dd..c46e5ce69 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/openziti/ziti -go 1.19 +go 1.20 require ( github.com/Jeffail/gabs v1.4.0 @@ -20,29 +20,29 @@ require ( github.com/jedib0t/go-pretty/v6 v6.4.0 github.com/michaelquigley/pfxlog v0.6.10 github.com/openziti/agent v1.0.10 - github.com/openziti/channel/v2 v2.0.62 - github.com/openziti/edge v0.24.251 - github.com/openziti/edge-api v0.25.18 - github.com/openziti/fabric v0.23.1 - github.com/openziti/foundation/v2 v2.0.21 - github.com/openziti/identity v1.0.47 - github.com/openziti/runzmd v1.0.20 - github.com/openziti/sdk-golang v0.20.2 - github.com/openziti/storage v0.2.0 - github.com/openziti/transport/v2 v2.0.75 + github.com/openziti/channel/v2 v2.0.64 + github.com/openziti/edge v0.24.268 + github.com/openziti/edge-api v0.25.19 + github.com/openziti/fabric v0.23.11 + github.com/openziti/foundation/v2 v2.0.22 + github.com/openziti/identity v1.0.48 + github.com/openziti/runzmd v1.0.21 + github.com/openziti/sdk-golang v0.20.21 + github.com/openziti/storage v0.2.2 + github.com/openziti/transport/v2 v2.0.77 github.com/openziti/xweb/v2 v2.0.2 github.com/openziti/ziti-db-explorer v1.1.1 github.com/pkg/errors v0.9.1 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 github.com/russross/blackfriday v1.5.2 - github.com/shirou/gopsutil/v3 v3.23.3 + github.com/shirou/gopsutil/v3 v3.23.4 github.com/sirupsen/logrus v1.9.0 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.10.0 github.com/stretchr/testify v1.8.2 go.etcd.io/bbolt v1.3.7 - golang.org/x/net v0.9.0 + golang.org/x/net v0.10.0 google.golang.org/grpc v1.42.0 google.golang.org/protobuf v1.30.0 gopkg.in/AlecAivazis/survey.v1 v1.8.7 @@ -111,7 +111,7 @@ require ( github.com/jessevdk/go-flags v1.5.0 // indirect github.com/jinzhu/copier v0.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/josharian/native v1.0.0 // indirect + github.com/josharian/native v1.1.0 // indirect github.com/kataras/go-events v0.0.3 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/kr/pty v1.1.8 // indirect @@ -125,25 +125,24 @@ require ( github.com/mattn/go-isatty v0.0.18 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mattn/go-tty v0.0.3 // indirect - github.com/mdlayher/netlink v1.7.1 // indirect - github.com/mdlayher/socket v0.4.0 // indirect + github.com/mdlayher/netlink v1.7.2 // indirect + github.com/mdlayher/socket v0.4.1 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect - github.com/miekg/dns v1.1.53 // indirect + github.com/miekg/dns v1.1.54 // indirect github.com/miekg/pkcs11 v1.1.1 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/moby/term v0.0.0-20221120202655-abb19827d345 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/natefinch/lumberjack v2.0.0+incompatible // indirect - github.com/netfoundry/secretstream v0.1.5 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.0.2 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/openziti/dilithium v0.3.3 // indirect github.com/openziti/jwks v1.0.3 // indirect - github.com/openziti/metrics v1.2.19 // indirect - github.com/openziti/secretstream v0.1.6 // indirect + github.com/openziti/metrics v1.2.21 // indirect + github.com/openziti/secretstream v0.1.7 // indirect github.com/openziti/x509-claims v1.0.3 // indirect github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 // indirect @@ -151,10 +150,10 @@ require ( github.com/pkg/term v1.2.0-beta.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect - github.com/rabbitmq/amqp091-go v1.8.0 // indirect + github.com/rabbitmq/amqp091-go v1.8.1 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/rodaine/table v1.0.1 // indirect - github.com/shoenig/go-m1cpu v0.1.5 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect github.com/speps/go-hashids v2.0.0+incompatible // indirect github.com/spf13/afero v1.6.0 // indirect @@ -170,17 +169,17 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect - go.mongodb.org/mongo-driver v1.11.4 // indirect + go.mongodb.org/mongo-driver v1.11.6 // indirect go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect - go.opentelemetry.io/otel v1.14.0 // indirect - go.opentelemetry.io/otel/trace v1.14.0 // indirect - golang.org/x/crypto v0.8.0 // indirect - golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 // indirect + go.opentelemetry.io/otel v1.15.1 // indirect + go.opentelemetry.io/otel/trace v1.15.1 // indirect + golang.org/x/crypto v0.9.0 // indirect + golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect golang.org/x/image v0.7.0 // indirect golang.org/x/mod v0.8.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.7.0 // indirect - golang.org/x/term v0.7.0 // indirect + golang.org/x/sync v0.2.0 // indirect + golang.org/x/sys v0.8.0 // indirect + golang.org/x/term v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/tools v0.6.0 // indirect google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa // indirect diff --git a/go.sum b/go.sum index d9045c67b..6281fd1c3 100644 --- a/go.sum +++ b/go.sum @@ -509,8 +509,8 @@ github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqx github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/josharian/native v1.0.0 h1:Ts/E8zCSEsG17dUqv7joXJFybuMLjQfWE04tsBODTxk= -github.com/josharian/native v1.0.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= +github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA= +github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -615,10 +615,10 @@ github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4f github.com/mattn/go-tty v0.0.3 h1:5OfyWorkyO7xP52Mq7tB36ajHDG5OHrmBGIS/DtakQI= github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mdlayher/netlink v1.7.1 h1:FdUaT/e33HjEXagwELR8R3/KL1Fq5x3G5jgHLp/BTmg= -github.com/mdlayher/netlink v1.7.1/go.mod h1:nKO5CSjE/DJjVhk/TNp6vCE1ktVxEA8VEh8drhZzxsQ= -github.com/mdlayher/socket v0.4.0 h1:280wsy40IC9M9q1uPGcLBwXpcTQDtoGwVt+BNoITxIw= -github.com/mdlayher/socket v0.4.0/go.mod h1:xxFqz5GRCUN3UEOm9CZqEJsAbe1C8OwSK46NlmWuVoc= +github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/g= +github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw= +github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U= +github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= @@ -628,8 +628,8 @@ github.com/michaelquigley/pfxlog v0.6.10/go.mod h1:gEiNTfKEX6cJHSwRpOuqBpc8oYrlh github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/miekg/dns v1.1.53 h1:ZBkuHr5dxHtB1caEOlZTLPo7D3L3TWckgUUs/RHfDxw= -github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= +github.com/miekg/dns v1.1.54 h1:5jon9mWcb0sFJGpnI99tOMhCPyJ+RPVz5b63MQG0VWI= +github.com/miekg/dns v1.1.54/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= @@ -663,8 +663,6 @@ github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6Yf github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= -github.com/netfoundry/secretstream v0.1.5 h1:iQ4brqUeZO7xNlSpwZDhekPW8d5LlRyHwvvevBOP1IM= -github.com/netfoundry/secretstream v0.1.5/go.mod h1:N6Mvl9Lk8xs84hFS9qZfjcJWiXmpzqaXW/L9W0JYfXY= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nrdcg/auroradns v1.0.1/go.mod h1:y4pc0i9QXYlFCWrhWrUSIETnZgrf4KuwjDIWmmXo3JI= github.com/nrdcg/desec v0.5.0/go.mod h1:2ejvMazkav1VdDbv2HeQO7w+Ta1CGHqzQr27ZBYTuEQ= @@ -697,34 +695,34 @@ github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTm github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openziti/agent v1.0.10 h1:9oTmNXghlggD+O7BJdBp3PkD5kAZ1ssSC6IHZkMakzQ= github.com/openziti/agent v1.0.10/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= -github.com/openziti/channel/v2 v2.0.62 h1:WmNYAugoyQ2HFu2VEhOH4WExzXsX6+dzSQDzNfHf5M8= -github.com/openziti/channel/v2 v2.0.62/go.mod h1:TS2FJs1GuCZXUfSFfptrNWKeTuQRO7YJ9K7C2jWMznA= +github.com/openziti/channel/v2 v2.0.64 h1:cH3yZhUUcUbI2nHUgCftOo5XdhhLMKjODIltRruLZyw= +github.com/openziti/channel/v2 v2.0.64/go.mod h1:wcctsNzOSldIqNJgz53dGkut7/Z7skQSI601rAHOycE= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= -github.com/openziti/edge v0.24.251 h1:F7m8U3UQLEC53s3t/UXGsAKlSar8qY+BubD1Ek01OcA= -github.com/openziti/edge v0.24.251/go.mod h1:Qoj6QDOxOtBZf36CHDu8FLDwpiTY6Ra7xcFmVsRFVM0= -github.com/openziti/edge-api v0.25.18 h1:LEiDz7MF4R9ZQNHwG34oTy4XCUlX4+kXRzvNYhp6e08= -github.com/openziti/edge-api v0.25.18/go.mod h1:m4fMjlxnU1Yq9rsBYNKMs1B3BxLZlpo/V3iy42H/Bkg= -github.com/openziti/fabric v0.23.1 h1:9RFRmApJ9EGUNNwIP4OSZcgFmiBdVLTvLfYsYRID8ws= -github.com/openziti/fabric v0.23.1/go.mod h1:p5EI0s0LvNi6HipLR+PWDon89C3dhfyX/jac/3cwmpA= -github.com/openziti/foundation/v2 v2.0.21 h1:3EDDmSunsbd2DlULuY/vqj12LHRZOknH/m3lf6Ws5Nw= -github.com/openziti/foundation/v2 v2.0.21/go.mod h1:02GW3jFSSlfLwYwuTIldP/S4w7eCKqlzL6ajFSGHNPA= -github.com/openziti/identity v1.0.47 h1:Zc1wL4yMq6hcmbgNR6d3gSkGCiK3IJYd9i4obBNBMPw= -github.com/openziti/identity v1.0.47/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= +github.com/openziti/edge v0.24.268 h1:Tnb3fzBBGRG9v+qbV2Qao+UDF1ULdBwjyzLIrMd6QgY= +github.com/openziti/edge v0.24.268/go.mod h1:mgfjhZC0vYMFjQYqnU6Qla8HDAKh2RxmTWYP3IoUS6g= +github.com/openziti/edge-api v0.25.19 h1:X8v0P/9lgIPl0WUa0u1BEclG/UuYsNIEPSOFz7Ru/Iw= +github.com/openziti/edge-api v0.25.19/go.mod h1:AfW+m0t2TyAQt2GtEgsGZKKbmHmynAKV+OtWfTpC3Co= +github.com/openziti/fabric v0.23.11 h1:pPEsP+Uu3pFtpQKgaCwTPE/G9At5goaIspxYWhKvxng= +github.com/openziti/fabric v0.23.11/go.mod h1:8v5XvnTTrcC14mrewAlRgSxNcD0JDU8Mx0NdQ+yrUxQ= +github.com/openziti/foundation/v2 v2.0.22 h1:oPjp83CwrVnldkPQiDykhfH5D8EokBk2xK+s7qUvmLk= +github.com/openziti/foundation/v2 v2.0.22/go.mod h1:4vBINq6Y9aSA6Bu1pOP2mBoepsWBrYWElJvTa4o+ceU= +github.com/openziti/identity v1.0.48 h1:spfZK7A3hPV/VC9ACGLpbmOX/peRCPAhnA1jtm6S8Qg= +github.com/openziti/identity v1.0.48/go.mod h1:cLc4VVIfke9Rs59q0Ft1xlbZABcBvKRO2+leZ05uwFM= github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc= github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ= -github.com/openziti/metrics v1.2.19 h1:gQO3e2lUotRHBdGUXYBPWMIErIyyF5hw0EakwQbJzuM= -github.com/openziti/metrics v1.2.19/go.mod h1:ovvxTpDBxGLcVLHgPTFFvwT4ur8p4Z76BPUhIE5iwqc= -github.com/openziti/runzmd v1.0.20 h1:LzRPZRVO9AepAFzGTEsRGp2LRVtJp5vr+QOBl8KbN4w= -github.com/openziti/runzmd v1.0.20/go.mod h1:IXTk5dHAZxtqjg9WVHOiyXHqEHZdwaH5Wg80h5Ux3bQ= -github.com/openziti/sdk-golang v0.20.2 h1:HTwWN7RmWrIop+AspcR2gVr13KYm4s3KS2RvgPhmVWs= -github.com/openziti/sdk-golang v0.20.2/go.mod h1:QE22lxF7REJXuggFCPPiKrlttgwrqSPEvUb0ka+jtjk= -github.com/openziti/secretstream v0.1.6 h1:TbpTwW/lc/0kuvaoRNjpiyebxh2Hyx8XSTB269QtHN4= -github.com/openziti/secretstream v0.1.6/go.mod h1:Gc6fhaDC46UUvwJD4ogbYji22YSdz3fe8bno+BFIpcE= -github.com/openziti/storage v0.2.0 h1:uwSoZQEZCzxp4+KZEi7fOWezbm0knmcCbRhni/DGHSo= -github.com/openziti/storage v0.2.0/go.mod h1:rJjLObUtJBNcm7MvnTr4DHCXZ+ppg0OMeoJ5tfi1aJI= -github.com/openziti/transport/v2 v2.0.75 h1:KZmnyRH1SOXSI6DXqDRsbRxRJE2cWv5EDCiQqC+R+hQ= -github.com/openziti/transport/v2 v2.0.75/go.mod h1:xMoDhxk9FFQoVyh4YL2h1hOshE5Aqlabd4mctmK1TWU= +github.com/openziti/metrics v1.2.21 h1:9hdw7xuSxRcLYsqV/wm59ukU3270RJTlAxDVy/Ga+mQ= +github.com/openziti/metrics v1.2.21/go.mod h1:DJkQzrO8+CewGNoAJhuW1d+//dPjhIbOQO9AStFlKK4= +github.com/openziti/runzmd v1.0.21 h1:kdrXaWbQrXlsvCCQKI/MoYoFDmgR9D79aqayQ6Ku5U0= +github.com/openziti/runzmd v1.0.21/go.mod h1:tdNzEYSzMYw1ZEQ2drMdqNUUDdApcE/KZDQGkl1yGFU= +github.com/openziti/sdk-golang v0.20.21 h1:I1/wZ4M3xB3+OJO7C/yr5896gdJeY7MmZw9y5SDOjwg= +github.com/openziti/sdk-golang v0.20.21/go.mod h1:IHtTVhtEeENJSmkj/sMOOz4CmM860hMtC8neCZ2lmyQ= +github.com/openziti/secretstream v0.1.7 h1:g2p53n1aCbpoiOWLRwm5fzO4yqRN/dAZevOPuGg/Uo4= +github.com/openziti/secretstream v0.1.7/go.mod h1:qcF8EmSX5SAT8k2pzsDI4bWugopv9AA+ltgWDrcAAEw= +github.com/openziti/storage v0.2.2 h1:LZMNUy235thFRk4oMgGv19PvyqSDwJDBzva7FbtrEuM= +github.com/openziti/storage v0.2.2/go.mod h1:MYIW9yMnq9QExJAz0pVkKEWF4w5uO9b/HbDwJJ+T0OE= +github.com/openziti/transport/v2 v2.0.77 h1:TeIUlX/zBf0FAG8ID7lqiUqbOgY8/HwBevaZE/3jzhQ= +github.com/openziti/transport/v2 v2.0.77/go.mod h1:GVmWaaRbpBwVBCm2dahE5X+FzlWZHNdw873nr9GTM2U= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= @@ -793,8 +791,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rabbitmq/amqp091-go v1.8.0 h1:GBFy5PpLQ5jSVVSYv8ecHGqeX7UTLYR4ItQbDCss9MM= -github.com/rabbitmq/amqp091-go v1.8.0/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc= +github.com/rabbitmq/amqp091-go v1.8.1 h1:RejT1SBUim5doqcL6s7iN6SBmsQqyTgXb1xMlH0h1hA= +github.com/rabbitmq/amqp091-go v1.8.1/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc= github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -818,13 +816,13 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/sacloud/libsacloud v1.36.2/go.mod h1:P7YAOVmnIn3DKHqCZcUKYUXmSwGBm3yS7IBEjKVSrjg= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil/v3 v3.23.3 h1:Syt5vVZXUDXPEXpIBt5ziWsJ4LdSAAxF4l/xZeQgSEE= -github.com/shirou/gopsutil/v3 v3.23.3/go.mod h1:lSBNN6t3+D6W5e5nXTxc8KIMMVxAcS+6IJlffjRRlMU= -github.com/shoenig/go-m1cpu v0.1.4/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= -github.com/shoenig/go-m1cpu v0.1.5 h1:LF57Z/Fpb/WdGLjt2HZilNnmZOxg/q2bSKTQhgbrLrQ= +github.com/shirou/gopsutil/v3 v3.23.4 h1:hZwmDxZs7Ewt75DV81r4pFMqbq+di2cbt9FsQBqLD2o= +github.com/shirou/gopsutil/v3 v3.23.4/go.mod h1:ZcGxyfzAMRevhUR2+cfhXDH6gQdFYE/t8j1nsU4mPI8= github.com/shoenig/go-m1cpu v0.1.5/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= -github.com/shoenig/test v0.6.3 h1:GVXWJFk9PiOjN0KoJ7VrJGH6uLPnqxR7/fe3HUPfE0c= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v0.6.3/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= @@ -965,8 +963,8 @@ go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsX go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= -go.mongodb.org/mongo-driver v1.11.4 h1:4ayjakA013OdpGyL2K3ZqylTac/rMjrJOMZ1EHizXas= -go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= +go.mongodb.org/mongo-driver v1.11.6 h1:XM7G6PjiGAO5betLF13BIa5TlLUUE3uJ/2Ox3Lz1K+o= +go.mongodb.org/mongo-driver v1.11.6/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqblyjsfuh8oXY= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= @@ -979,11 +977,11 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= -go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= +go.opentelemetry.io/otel v1.15.1 h1:3Iwq3lfRByPaws0f6bU3naAqOR1n5IeDWd9390kWHa8= +go.opentelemetry.io/otel v1.15.1/go.mod h1:mHHGEHVDLal6YrKMmk9LqC4a3sF5g+fHfrttQIB1NTc= go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= -go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= -go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= +go.opentelemetry.io/otel/trace v1.15.1 h1:uXLo6iHJEzDfrNC0L0mNjItIp06SyaBQxu5t3xMlngY= +go.opentelemetry.io/otel/trace v1.15.1/go.mod h1:IWdQG/5N1x7f6YUlmdLeJvH9yxtuJAfc4VW5Agv9r/8= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1022,8 +1020,8 @@ golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= -golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1034,8 +1032,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 h1:5llv2sWeaMSnA3w2kS57ouQQ4pudlXrR0dCgw51QK9o= -golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1125,8 +1123,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1155,8 +1153,9 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180606202747-9527bec2660b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1245,14 +1244,15 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/ziti/controller/delete_sessions.go b/ziti/controller/delete_sessions.go index 880eab39e..c88b8c389 100644 --- a/ziti/controller/delete_sessions.go +++ b/ziti/controller/delete_sessions.go @@ -182,9 +182,7 @@ func deleteSessions(db boltz.Db) { } err = db.Update(nil, func(ctx boltz.MutateContext) error { - root := ctx.Tx().Bucket([]byte("ziti")) - if root == nil { return errors.New("root 'ziti' bucket not found") } From 3d2f37267526194031b254d812b4f1a9224f9f09 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Mon, 15 May 2023 10:03:22 -0400 Subject: [PATCH 43/51] fixes #1112 distinguished names are now unique --- ziti/cmd/pki_create_ca.go | 10 +++++++++- ziti/cmd/pki_create_client.go | 9 ++++++++- ziti/cmd/pki_create_intermediate.go | 9 ++++++++- ziti/cmd/pki_create_server.go | 9 ++++++++- 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/ziti/cmd/pki_create_ca.go b/ziti/cmd/pki_create_ca.go index c263ef0ba..9f1f4e187 100644 --- a/ziti/cmd/pki_create_ca.go +++ b/ziti/cmd/pki_create_ca.go @@ -17,6 +17,7 @@ package cmd import ( + "github.com/openziti/fabric/controller/idgen" cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/internal/log" "github.com/openziti/ziti/ziti/pki/certificate" @@ -62,10 +63,12 @@ func NewCmdPKICreateCA(out io.Writer, errOut io.Writer) *cobra.Command { return cmd } +const FlagCaName = "ca-name" + func (o *PKICreateCAOptions) addPKICreateCAFlags(cmd *cobra.Command) { cmd.Flags().StringVarP(&o.Flags.PKIRoot, "pki-root", "", "", "Directory in which PKI resides") cmd.Flags().StringVarP(&o.Flags.CAFile, "ca-file", "", "", "Dir/File name (within PKI_ROOT) in which to store new CA") - cmd.Flags().StringVarP(&o.Flags.CAName, "ca-name", "", "NetFoundry Inc. Certificate Authority", "Name of CA") + cmd.Flags().StringVarP(&o.Flags.CAName, FlagCaName, "", "NetFoundry Inc. Certificate Authority", "Name of CA") cmd.Flags().IntVarP(&o.Flags.CAExpire, "expire-limit", "", 3650, "Expiration limit in days") cmd.Flags().IntVarP(&o.Flags.CAMaxpath, "max-path-len", "", -1, "Intermediate maximum path length") cmd.Flags().IntVarP(&o.Flags.CAPrivateKeySize, "private-key-size", "", 4096, "Size of the private key") @@ -88,6 +91,11 @@ func (o *PKICreateCAOptions) Run() error { return err } + if !o.Cmd.Flags().Changed(FlagCaName) { + //default name, ensure uniqueness by adding a random id + o.Flags.CAName = o.Flags.CAName + " " + idgen.New() + } + commonName := o.Flags.CAName filename := o.ObtainFileName(cafile, commonName) diff --git a/ziti/cmd/pki_create_client.go b/ziti/cmd/pki_create_client.go index 8ed3c145c..4d4f70aaf 100644 --- a/ziti/cmd/pki_create_client.go +++ b/ziti/cmd/pki_create_client.go @@ -17,6 +17,7 @@ package cmd import ( + "github.com/openziti/fabric/controller/idgen" cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/internal/log" "github.com/openziti/ziti/ziti/pki/certificate" @@ -62,12 +63,14 @@ func NewCmdPKICreateClient(out io.Writer, errOut io.Writer) *cobra.Command { return cmd } +const FlagCaClientName = "client-name" + func (o *PKICreateClientOptions) addPKICreateClientFlags(cmd *cobra.Command) { cmd.Flags().StringVarP(&o.Flags.PKIRoot, "pki-root", "", "", "Directory in which PKI resides") cmd.Flags().StringVarP(&o.Flags.CAName, "ca-name", "", "intermediate", "Name of Intermediate CA (within PKI_ROOT) to use to sign the new Client certificate") cmd.Flags().StringVarP(&o.Flags.ClientFile, "client-file", "", "client", "Name of file (under chosen CA) in which to store new Client certificate and private key") cmd.Flags().StringVarP(&o.Flags.KeyFile, "key-file", "", "", "Name of file (under chosen CA) containing private key to use when generating Client certificate") - cmd.Flags().StringVarP(&o.Flags.ClientName, "client-name", "", "NetFoundry Inc. Client", "Common Name (CN) to use for new Client certificate") + cmd.Flags().StringVarP(&o.Flags.ClientName, FlagCaClientName, "", "NetFoundry Inc. Client", "Common Name (CN) to use for new Client certificate") cmd.Flags().StringSliceVar(&o.Flags.Email, "email", []string{}, "Email addr(s) to add to Subject Alternate Name (SAN) for new Client certificate") cmd.Flags().IntVarP(&o.Flags.CAExpire, "expire-limit", "", 365, "Expiration limit in days") cmd.Flags().IntVarP(&o.Flags.CAMaxpath, "max-path-len", "", -1, "Intermediate maximum path length") @@ -86,6 +89,10 @@ func (o *PKICreateClientOptions) Run() error { local := o.Flags.PKI.Store.(*store.Local) local.Root = pkiroot + if !o.Cmd.Flags().Changed(FlagCaClientName) { + o.Flags.ClientName = o.Flags.ClientName + " " + idgen.New() + } + commonName := o.Flags.ClientName clientCertFile, err := o.ObtainClientCertFile() diff --git a/ziti/cmd/pki_create_intermediate.go b/ziti/cmd/pki_create_intermediate.go index eb921a6cf..0b1648204 100644 --- a/ziti/cmd/pki_create_intermediate.go +++ b/ziti/cmd/pki_create_intermediate.go @@ -17,6 +17,7 @@ package cmd import ( + "github.com/openziti/fabric/controller/idgen" cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/internal/log" "github.com/openziti/ziti/ziti/pki/certificate" @@ -61,11 +62,13 @@ func NewCmdPKICreateIntermediate(out io.Writer, errOut io.Writer) *cobra.Command return cmd } +const FlagCaIntermediateName = "intermediate-name" + func (o *PKICreateIntermediateOptions) addPKICreateIntermediateFlags(cmd *cobra.Command) { cmd.Flags().StringVarP(&o.Flags.PKIRoot, "pki-root", "", "", "Directory in which PKI resides") cmd.Flags().StringVarP(&o.Flags.CAName, "ca-name", "", "ca", "Name of CA (within PKI_ROOT) to use to sign the new Intermediate CA") cmd.Flags().StringVarP(&o.Flags.IntermediateFile, "intermediate-file", "", "intermediate", "Dir/File name (within PKI_ROOT) in which to store new Intermediate CA") - cmd.Flags().StringVarP(&o.Flags.IntermediateName, "intermediate-name", "", "NetFoundry Inc. Intermediate CA", "Common Name (CN) to use for new Intermediate CA") + cmd.Flags().StringVarP(&o.Flags.IntermediateName, FlagCaIntermediateName, "", "NetFoundry Inc. Intermediate CA", "Common Name (CN) to use for new Intermediate CA") cmd.Flags().IntVarP(&o.Flags.CAExpire, "expire-limit", "", 3650, "Expiration limit in days") cmd.Flags().IntVarP(&o.Flags.CAMaxpath, "max-path-len", "", 0, "Intermediate maximum path length") cmd.Flags().IntVarP(&o.Flags.CAPrivateKeySize, "private-key-size", "", 4096, "Size of the private key") @@ -87,6 +90,10 @@ func (o *PKICreateIntermediateOptions) Run() error { return err } + if !o.Cmd.Flags().Changed(FlagCaIntermediateName) { + o.Flags.IntermediateName = o.Flags.IntermediateName + " " + idgen.New() + } + commonName := o.Flags.IntermediateName filename := o.ObtainFileName(intermediatefile, commonName) diff --git a/ziti/cmd/pki_create_server.go b/ziti/cmd/pki_create_server.go index 59e959189..7a3e5995e 100644 --- a/ziti/cmd/pki_create_server.go +++ b/ziti/cmd/pki_create_server.go @@ -17,6 +17,7 @@ package cmd import ( + "github.com/openziti/fabric/controller/idgen" cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/internal/log" "github.com/openziti/ziti/ziti/pki/certificate" @@ -62,12 +63,14 @@ func NewCmdPKICreateServer(out io.Writer, errOut io.Writer) *cobra.Command { return cmd } +const FlagCaServerName = "server-name" + func (o *PKICreateServerOptions) addPKICreateServerFlags(cmd *cobra.Command) { cmd.Flags().StringVarP(&o.Flags.PKIRoot, "pki-root", "", "", "Directory in which PKI resides") cmd.Flags().StringVarP(&o.Flags.CAName, "ca-name", "", "intermediate", "Name of Intermediate CA (within PKI_ROOT) to use to sign the new Server certificate") cmd.Flags().StringVarP(&o.Flags.ServerFile, "server-file", "", "server", "Name of file (under chosen CA) in which to store new Server certificate and private key") cmd.Flags().StringVarP(&o.Flags.KeyFile, "key-file", "", "", "Name of file (under chosen CA) containing private key to use when generating Server certificate") - cmd.Flags().StringVarP(&o.Flags.ServerName, "server-name", "", "NetFoundry Inc. Server", "Common Name (CN) to use for new Server certificate") + cmd.Flags().StringVarP(&o.Flags.ServerName, FlagCaServerName, "", "NetFoundry Inc. Server", "Common Name (CN) to use for new Server certificate") cmd.Flags().StringSliceVar(&o.Flags.DNSName, "dns", []string{}, "DNS name(s) to add to Subject Alternate Name (SAN) for new Server certificate") cmd.Flags().StringSliceVar(&o.Flags.IP, "ip", []string{}, "IP addr(s) to add to Subject Alternate Name (SAN) for new Server certificate") cmd.Flags().IntVarP(&o.Flags.CAExpire, "expire-limit", "", 365, "Expiration limit in days") @@ -92,6 +95,10 @@ func (o *PKICreateServerOptions) Run() error { local := o.Flags.PKI.Store.(*store.Local) local.Root = pkiroot + if !o.Cmd.Flags().Changed(FlagCaServerName) { + o.Flags.ServerName = o.Flags.ServerName + " " + idgen.New() + } + commonName := o.Flags.ServerName serverCertFile, err := o.ObtainServerCertFile() From 33e0a61dccc35e38304163ed9649b52e76e8867f Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Mon, 22 May 2023 11:07:13 -0400 Subject: [PATCH 44/51] Update ziti-ci path --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d52c653af..bfe8f3974 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,7 +44,7 @@ jobs: go-version: '1.20.x' - name: Install Ziti CI - uses: netfoundry/ziti-ci@v1 + uses: openziti/ziti-ci@v1 - name: Build and Test run: | @@ -76,7 +76,7 @@ jobs: go-version: '1.20.x' - name: Install Ziti CI - uses: netfoundry/ziti-ci@v1 + uses: openziti/ziti-ci@v1 - name: Build and Test shell: bash @@ -109,7 +109,7 @@ jobs: go-version: '1.20.x' - name: Install Ziti CI - uses: netfoundry/ziti-ci@v1 + uses: openziti/ziti-ci@v1 - name: Build and Test env: @@ -188,7 +188,7 @@ jobs: python-version: '3.7' - name: Install Ziti CI - uses: netfoundry/ziti-ci@v1 + uses: openziti/ziti-ci@v1 - name: Build and Test env: From a2a2e606c1e912d762fe6b340ec886e58801d20d Mon Sep 17 00:00:00 2001 From: pheianox <77569421+pheianox@users.noreply.github.com> Date: Tue, 23 May 2023 12:29:51 -0400 Subject: [PATCH 45/51] Add PITS Global Data Recovery Services to the list of adopters --- ADOPTERS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ADOPTERS.md b/ADOPTERS.md index f1decf6f2..8720ae692 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -26,3 +26,4 @@ Here's the list of projects using and adopting OpenZiti | Resulticks | https://www.resulticks.com/ | | Resulticks Zero Trust API delivery network which forms the core of Resulticks' omnichannel marketing automation platform is built on OpenZiti to form a private dark mesh network. | | KubeZT - Zero Trust Kubernetes | https://KubeZT.com/ | | KubeZT is an on-demand Kubernetes environment that enables developers to build and deploy highly secure applications for high-compliance organizations. | | Analytics HQ | https://AnalyticsHQ.com/ | | Analytics HQ is a next-generation unified platform built for modern data management and advanced analytics. | +| PITS Global Data Recovery Services | https://www.pitsdatarecovery.net/ | | PITS Global Data Recovery Services is a data recovery company in the United States that offers services for recovering data from hard drives, SSDs, flash drives, RAID arrays and more. | From a6a128682117bade86cbc095473d8c25204e2fcf Mon Sep 17 00:00:00 2001 From: Shawn Carey Date: Tue, 23 May 2023 20:27:50 +0000 Subject: [PATCH 46/51] Update edge to get config type changes (allow underscores in hostnames) (#1120) * get edge 0.24.300 for config type schema changes --- CHANGELOG.md | 5 +++- go.mod | 28 +++++++++--------- go.sum | 82 ++++++++++++++++++++++++++++++++++++---------------- 3 files changed, 76 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 494204107..3c6ee6b60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ * `-e/--ext-jwt` allows a user to supply a file containing a jwt used with ext-jwt-signers to login * `-c/--client-cert` allows a certificate to be supplied to login (used with `-k/--client-key`) * `-k/--client-key` allows a key to be supplied to login (used with `-c/--client-cert`) +* Config type changes + * address fields in `intercept.v1`, `host.v1`, and `host.v2` config types now permit hostnames with underscores. ## Event Changes @@ -184,7 +186,7 @@ Example output: * github.com/openziti/channel/v2: [v2.0.58 -> v2.0.64](https://github.com/openziti/channel/compare/v2.0.58...v2.0.64) * [Issue #98](https://github.com/openziti/channel/issues/98) - Set default connect timeout to 5 seconds -* github.com/openziti/edge: [v0.24.239 -> v0.24.266](https://github.com/openziti/edge/compare/v0.24.239...v0.24.266) +* github.com/openziti/edge: [v0.24.239 -> v0.24.300](https://github.com/openziti/edge/compare/v0.24.239...v0.24.300) * [Issue #1471](https://github.com/openziti/edge/issues/1471) - UDP intercept connections report incorrect local/remote addresses, making confusing events * [Issue #629](https://github.com/openziti/edge/issues/629) - emit entity change events * [Issue #1295](https://github.com/openziti/edge/issues/1295) - Ensure DB migrations work properly in a clustered setup (edge) @@ -213,4 +215,5 @@ Example output: * [Issue #1087](https://github.com/openziti/ziti/issues/1087) - re-enable CI in forks * [Issue #1013](https://github.com/openziti/ziti/issues/1013) - docker env password is renewed at each `docker-compose up` * [Issue #1077](https://github.com/openziti/ziti/issues/1077) - Show auth-policy name on identity list instead of id + * [Issue #1119](https://github.com/openziti/ziti/issues/1119) - intercept.v1 config should permit underscores in the address diff --git a/go.mod b/go.mod index c46e5ce69..e542cf571 100644 --- a/go.mod +++ b/go.mod @@ -20,27 +20,27 @@ require ( github.com/jedib0t/go-pretty/v6 v6.4.0 github.com/michaelquigley/pfxlog v0.6.10 github.com/openziti/agent v1.0.10 - github.com/openziti/channel/v2 v2.0.64 - github.com/openziti/edge v0.24.268 - github.com/openziti/edge-api v0.25.19 - github.com/openziti/fabric v0.23.11 - github.com/openziti/foundation/v2 v2.0.22 - github.com/openziti/identity v1.0.48 + github.com/openziti/channel/v2 v2.0.76 + github.com/openziti/edge v0.24.300 + github.com/openziti/edge-api v0.25.24 + github.com/openziti/fabric v0.23.26 + github.com/openziti/foundation/v2 v2.0.24 + github.com/openziti/identity v1.0.53 github.com/openziti/runzmd v1.0.21 - github.com/openziti/sdk-golang v0.20.21 - github.com/openziti/storage v0.2.2 - github.com/openziti/transport/v2 v2.0.77 + github.com/openziti/sdk-golang v0.20.46 + github.com/openziti/storage v0.2.6 + github.com/openziti/transport/v2 v2.0.86 github.com/openziti/xweb/v2 v2.0.2 github.com/openziti/ziti-db-explorer v1.1.1 github.com/pkg/errors v0.9.1 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 github.com/russross/blackfriday v1.5.2 github.com/shirou/gopsutil/v3 v3.23.4 - github.com/sirupsen/logrus v1.9.0 + github.com/sirupsen/logrus v1.9.2 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.10.0 - github.com/stretchr/testify v1.8.2 + github.com/stretchr/testify v1.8.3 go.etcd.io/bbolt v1.3.7 golang.org/x/net v0.10.0 google.golang.org/grpc v1.42.0 @@ -114,6 +114,7 @@ require ( github.com/josharian/native v1.1.0 // indirect github.com/kataras/go-events v0.0.3 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect + github.com/klauspost/compress v1.13.6 // indirect github.com/kr/pty v1.1.8 // indirect github.com/kyokomi/emoji/v2 v2.2.12 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect @@ -141,8 +142,8 @@ require ( github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/openziti/dilithium v0.3.3 // indirect github.com/openziti/jwks v1.0.3 // indirect - github.com/openziti/metrics v1.2.21 // indirect - github.com/openziti/secretstream v0.1.7 // indirect + github.com/openziti/metrics v1.2.25 // indirect + github.com/openziti/secretstream v0.1.8 // indirect github.com/openziti/x509-claims v1.0.3 // indirect github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 // indirect @@ -186,4 +187,5 @@ require ( gopkg.in/ini.v1 v1.66.2 // indirect gopkg.in/square/go-jose.v2 v2.5.1 // indirect gotest.tools/v3 v3.4.0 // indirect + nhooyr.io/websocket v1.8.7 // indirect ) diff --git a/go.sum b/go.sum index 6281fd1c3..2d9158ef9 100644 --- a/go.sum +++ b/go.sum @@ -243,6 +243,10 @@ github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa h1:RDBNVkRviHZtvD github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/getkin/kin-openapi v0.13.0/go.mod h1:WGRs2ZMM1Q8LR1QBEwUxC6RJEfaBcD0s+pcEVXFuAjw= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= +github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-acme/lego/v4 v4.2.0 h1:zEvpcDLqvzOlNUGBMA0MCKPpb9UBbnBzgWwCIbTEt2g= github.com/go-acme/lego/v4 v4.2.0/go.mod h1:jmhqxBaangB8txXZKjRLTPXFXUwPCTU2fU8S9/eQzBI= @@ -300,6 +304,13 @@ github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/ github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/validate v0.22.1 h1:G+c2ub6q47kfX1sOBLwIQwzBVt8qmOAARyo/9Fqs9NU= github.com/go-openapi/validate v0.22.1/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8= github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I= @@ -329,6 +340,12 @@ github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWe github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -432,6 +449,7 @@ github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -516,6 +534,7 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= @@ -529,6 +548,8 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:C github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/kolo/xmlrpc v0.0.0-20200310150728-e0350524596b/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -554,6 +575,8 @@ github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HK github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/linode/linodego v0.21.0/go.mod h1:UTpq1JUZD0CZsJ8rt+0CRkqbzrp1MbGakVPt2DXY5Mk= github.com/liquidweb/liquidweb-go v1.6.1/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= github.com/lucas-clemente/quic-go v0.18.0/go.mod h1:yXttHsSNxQi8AWijC/vLP+OJczXqzHSOcJrM5ITUlCg= @@ -650,9 +673,11 @@ github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR github.com/moby/term v0.0.0-20221120202655-abb19827d345 h1:J9c53/kxIH+2nTKBEfZYFMlhghtHpIHSXpm5VRGHSnU= github.com/moby/term v0.0.0-20221120202655-abb19827d345/go.mod h1:15ce4BGCFxt7I5NQKT+HV0yEDxmf6fSysfEDiVo3zFM= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= @@ -695,34 +720,34 @@ github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTm github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openziti/agent v1.0.10 h1:9oTmNXghlggD+O7BJdBp3PkD5kAZ1ssSC6IHZkMakzQ= github.com/openziti/agent v1.0.10/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= -github.com/openziti/channel/v2 v2.0.64 h1:cH3yZhUUcUbI2nHUgCftOo5XdhhLMKjODIltRruLZyw= -github.com/openziti/channel/v2 v2.0.64/go.mod h1:wcctsNzOSldIqNJgz53dGkut7/Z7skQSI601rAHOycE= +github.com/openziti/channel/v2 v2.0.76 h1:/fopm40/Pu1BKXpSggumZ6FexqDEaS0de+UsNCnegbU= +github.com/openziti/channel/v2 v2.0.76/go.mod h1:AG43uiANCWhVwM4BMYPJES9J4KCa3vHg9QPJjHDRqPI= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= -github.com/openziti/edge v0.24.268 h1:Tnb3fzBBGRG9v+qbV2Qao+UDF1ULdBwjyzLIrMd6QgY= -github.com/openziti/edge v0.24.268/go.mod h1:mgfjhZC0vYMFjQYqnU6Qla8HDAKh2RxmTWYP3IoUS6g= -github.com/openziti/edge-api v0.25.19 h1:X8v0P/9lgIPl0WUa0u1BEclG/UuYsNIEPSOFz7Ru/Iw= -github.com/openziti/edge-api v0.25.19/go.mod h1:AfW+m0t2TyAQt2GtEgsGZKKbmHmynAKV+OtWfTpC3Co= -github.com/openziti/fabric v0.23.11 h1:pPEsP+Uu3pFtpQKgaCwTPE/G9At5goaIspxYWhKvxng= -github.com/openziti/fabric v0.23.11/go.mod h1:8v5XvnTTrcC14mrewAlRgSxNcD0JDU8Mx0NdQ+yrUxQ= -github.com/openziti/foundation/v2 v2.0.22 h1:oPjp83CwrVnldkPQiDykhfH5D8EokBk2xK+s7qUvmLk= -github.com/openziti/foundation/v2 v2.0.22/go.mod h1:4vBINq6Y9aSA6Bu1pOP2mBoepsWBrYWElJvTa4o+ceU= -github.com/openziti/identity v1.0.48 h1:spfZK7A3hPV/VC9ACGLpbmOX/peRCPAhnA1jtm6S8Qg= -github.com/openziti/identity v1.0.48/go.mod h1:cLc4VVIfke9Rs59q0Ft1xlbZABcBvKRO2+leZ05uwFM= +github.com/openziti/edge v0.24.300 h1:5R7kkCNDYpt/Esw8AHAA1dF7VY9ZrIyUx8sszOgLEUE= +github.com/openziti/edge v0.24.300/go.mod h1:h/lSg5SRynDTuLNDOSAFWGdmaIyMRzbPSGA2CElfxA4= +github.com/openziti/edge-api v0.25.24 h1:XrF3AtF9mnJXgG7rSV2M50Dj/EKUkBUaDdb9/n2TDHI= +github.com/openziti/edge-api v0.25.24/go.mod h1:rmEkj8jAkBTUhhgE/GFXije6bpFbd2P9TzdxTqZlXI8= +github.com/openziti/fabric v0.23.26 h1:wEPNh8m3qcq9sw1Zmg5YgFZw1FovsKGu53rRf8qzI7A= +github.com/openziti/fabric v0.23.26/go.mod h1:0MtkZqIHs3cJPP4DB88xsWUemDm77nN/GvWBBfq7peo= +github.com/openziti/foundation/v2 v2.0.24 h1:cNJCbh4o9E+7mtSUDo7ZBuMoPjJAilDWgr7X8ntRz/Q= +github.com/openziti/foundation/v2 v2.0.24/go.mod h1:H0w/ldKyE0ynwpIwt68k2rhMwt874IVxPQcimMuHJ3s= +github.com/openziti/identity v1.0.53 h1:w28wBcuiT8RlLjfcVgcqz0povQgfibj7zwS6OeLGSpI= +github.com/openziti/identity v1.0.53/go.mod h1:ZhMiSF9okmA781kFl0m4BkeyAmf3XA20h1Dh1oz480I= github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc= github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ= -github.com/openziti/metrics v1.2.21 h1:9hdw7xuSxRcLYsqV/wm59ukU3270RJTlAxDVy/Ga+mQ= -github.com/openziti/metrics v1.2.21/go.mod h1:DJkQzrO8+CewGNoAJhuW1d+//dPjhIbOQO9AStFlKK4= +github.com/openziti/metrics v1.2.25 h1:acD/J/DcWgfbhmKS/s3HDvpt/1WS3QBZPeeGBZHbj94= +github.com/openziti/metrics v1.2.25/go.mod h1:s2r1FS+wUdJ3LXp1qJK6777iQ8gPWXE2HFfDsiJo1/Y= github.com/openziti/runzmd v1.0.21 h1:kdrXaWbQrXlsvCCQKI/MoYoFDmgR9D79aqayQ6Ku5U0= github.com/openziti/runzmd v1.0.21/go.mod h1:tdNzEYSzMYw1ZEQ2drMdqNUUDdApcE/KZDQGkl1yGFU= -github.com/openziti/sdk-golang v0.20.21 h1:I1/wZ4M3xB3+OJO7C/yr5896gdJeY7MmZw9y5SDOjwg= -github.com/openziti/sdk-golang v0.20.21/go.mod h1:IHtTVhtEeENJSmkj/sMOOz4CmM860hMtC8neCZ2lmyQ= -github.com/openziti/secretstream v0.1.7 h1:g2p53n1aCbpoiOWLRwm5fzO4yqRN/dAZevOPuGg/Uo4= -github.com/openziti/secretstream v0.1.7/go.mod h1:qcF8EmSX5SAT8k2pzsDI4bWugopv9AA+ltgWDrcAAEw= -github.com/openziti/storage v0.2.2 h1:LZMNUy235thFRk4oMgGv19PvyqSDwJDBzva7FbtrEuM= -github.com/openziti/storage v0.2.2/go.mod h1:MYIW9yMnq9QExJAz0pVkKEWF4w5uO9b/HbDwJJ+T0OE= -github.com/openziti/transport/v2 v2.0.77 h1:TeIUlX/zBf0FAG8ID7lqiUqbOgY8/HwBevaZE/3jzhQ= -github.com/openziti/transport/v2 v2.0.77/go.mod h1:GVmWaaRbpBwVBCm2dahE5X+FzlWZHNdw873nr9GTM2U= +github.com/openziti/sdk-golang v0.20.46 h1:BKKSpMjmWGg7Ei9w1GSUWiDQjVY3EmsvgP/eSNLu5Zo= +github.com/openziti/sdk-golang v0.20.46/go.mod h1:haDZM4tr6FWN2+Klht8vpGIMiFvEoClIaXvCcq97ehM= +github.com/openziti/secretstream v0.1.8 h1:AgPHLDuXTiM1apHQmBvwvSW1vbQqAm7wUJDHqkQ/6Nk= +github.com/openziti/secretstream v0.1.8/go.mod h1:qcF8EmSX5SAT8k2pzsDI4bWugopv9AA+ltgWDrcAAEw= +github.com/openziti/storage v0.2.6 h1:/pbIRzDwrczMWRVkN75PfwAXFbArplIqhpRsUrsUOBc= +github.com/openziti/storage v0.2.6/go.mod h1:JnjCofrnPcajwn6VIB2CgI7pVVUFBL7evbezIsQ4AgA= +github.com/openziti/transport/v2 v2.0.86 h1:IU53/XCpEUES7TabMrWrYPHsiDD5AzBxeSZk3nO1SI8= +github.com/openziti/transport/v2 v2.0.86/go.mod h1:ausyIxIQ4u+XeezXLo/nqJYQxO1AEf0APDrW0G1Hp6c= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= @@ -852,8 +877,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y= +github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M= github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= @@ -906,8 +931,9 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= @@ -923,6 +949,10 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1 github.com/transip/gotransip/v6 v6.2.0/go.mod h1:pQZ36hWWRahCUXkFWlx9Hs711gLd8J4qdgLdRzmtY+g= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= +github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1521,6 +1551,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= +nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/goversion v1.2.0 h1:SPn+NLTiAG7w30IRK/DKp1BjvpWabYgxlLp/+kx5J8w= rsc.io/goversion v1.2.0/go.mod h1:Eih9y/uIBS3ulggl7KNJ09xGSLcuNaLgmvvqa07sgfo= From db78e17aa569e99a87689dfc97c4b9b7ddef3c72 Mon Sep 17 00:00:00 2001 From: Shawn Carey Date: Wed, 24 May 2023 21:01:24 +0000 Subject: [PATCH 47/51] use correct entity type when updating config-types (#1124) use correct entity type when updating config-types. put schema in "schema" path when updating entity. --- CHANGELOG.md | 1 + ziti/cmd/edge/update_config_type.go | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c6ee6b60..628acd157 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -216,4 +216,5 @@ Example output: * [Issue #1013](https://github.com/openziti/ziti/issues/1013) - docker env password is renewed at each `docker-compose up` * [Issue #1077](https://github.com/openziti/ziti/issues/1077) - Show auth-policy name on identity list instead of id * [Issue #1119](https://github.com/openziti/ziti/issues/1119) - intercept.v1 config should permit underscores in the address + * [Issue #1123](https://github.com/openziti/ziti/issues/1123) - cannot update config types with ziti cli diff --git a/ziti/cmd/edge/update_config_type.go b/ziti/cmd/edge/update_config_type.go index ab93d9a28..26323fc35 100644 --- a/ziti/cmd/edge/update_config_type.go +++ b/ziti/cmd/edge/update_config_type.go @@ -68,7 +68,7 @@ func newUpdateConfigTypeCmd(out io.Writer, errOut io.Writer) *cobra.Command { // runUpdateConfigType update a new config on the Ziti Edge Controller func (self *updateConfigTypeAction) run() error { - id, err := mapNameToID("configs", self.Args[0], self.Options) + id, err := mapNameToID("config-types", self.Args[0], self.Options) if err != nil { return err } @@ -108,7 +108,7 @@ func (self *updateConfigTypeAction) run() error { fmt.Printf("Failing parsing JSON: %+v\n", err) return errors.Errorf("unable to parse data as json: %v", err) } - api.SetJSONValue(entityData, dataMap, "data") + api.SetJSONValue(entityData, dataMap, "schema") change = true } @@ -116,7 +116,7 @@ func (self *updateConfigTypeAction) run() error { return errors.New("no change specified. must specify at least one attribute to change") } - _, err = patchEntityOfType(fmt.Sprintf("configs/%v", id), entityData.String(), &self.Options) + _, err = patchEntityOfType(fmt.Sprintf("config-types/%v", id), entityData.String(), &self.Options) return err } From a64749600bfd4370b10b8819c0a14cbd58e7ea94 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Tue, 25 Apr 2023 15:46:45 -0400 Subject: [PATCH 48/51] Start building out smoketests. Add initial HA model. Break out install functionality. Clean up some agent commands --- .github/workflows/main.yml | 17 +- common/getziti/github.go | 213 ++++++++++++ common/getziti/install_ziti_edge_tunnel.go | 26 ++ common/getziti/unzip.go | 74 ++++ go.mod | 2 +- network-tests/go.mod | 112 +++--- network-tests/go.sum | 232 +++++++------ .../actions/bootstrap.go | 14 +- .../{simple-transfer => ha}/actions/start.go | 0 .../configs/consul.hcl | 0 network-tests/ha/configs/ctrl.yml.tmpl | 196 +++++++++++ .../configs/metricbeat.yml | 0 network-tests/ha/configs/router.yml.tmpl | 70 ++++ .../{simple-transfer => ha}/configs/ziti.hcl | 0 network-tests/ha/main.go | 298 ++++++++++++++++ network-tests/router-test/configs/ctrl.yml | 194 +++++++++++ network-tests/router-test/configs/router.yml | 70 ++++ network-tests/router-test/main.go | 197 +++++++++++ network-tests/simple-transfer/main.go | 281 ++-------------- network-tests/simple-transfer/stages.go | 25 -- network-tests/simple/actions/bootstrap.go | 115 +++++++ network-tests/simple/actions/start.go | 85 +++++ network-tests/simple/configs/consul.hcl | 24 ++ .../configs/ctrl.yml | 0 .../configs/elasticsearch.repo | 0 network-tests/simple/configs/metricbeat.yml | 53 +++ .../configs/router.yml | 0 network-tests/simple/configs/ziti.hcl | 9 + network-tests/simple/simple.go | 318 ++++++++++++++++++ .../stages/5_operation/echo_client.go | 11 +- .../stages/5_operation/echo_server.go | 0 network-tests/tests/files_test.go | 85 +++++ network-tests/tests/matrix.md | 32 ++ network-tests/tests/model_test.go | 48 +++ network-tests/utils/ziti-echo/cmd/client.go | 8 +- network-tests/utils/ziti-echo/cmd/server.go | 8 +- ziti/cmd/agentcli/agent.go | 10 +- .../agentcli/agent_set_channel_log_level.go | 25 +- ziti/cmd/agentcli/agent_set_log_level.go | 22 +- ziti/cmd/agentcli/agent_setgc.go | 22 +- ziti/cmd/agentcli/agent_simple.go | 8 +- ziti/cmd/agentcli/agent_stack.go | 4 +- ziti/cmd/install/common_install.go | 68 +--- ziti/cmd/install/install_ziti_edge_tunnel.go | 24 +- ziti/cmd/install/install_ziti_prox_c.go | 23 +- ziti/cmd/install/upgrade_ziti_controller.go | 46 --- ziti/cmd/install/upgrade_ziti_edge_tunnel.go | 48 +-- ziti/cmd/install/upgrade_ziti_prox_c.go | 48 +-- ziti/cmd/install/upgrade_ziti_router.go | 46 --- ziti/cmd/install/upgrade_ziti_tunnel.go | 46 --- ziti/util/rest.go | 177 ---------- ziti/util/updates.go | 13 +- 52 files changed, 2405 insertions(+), 1042 deletions(-) create mode 100644 common/getziti/github.go create mode 100644 common/getziti/install_ziti_edge_tunnel.go create mode 100644 common/getziti/unzip.go rename network-tests/{simple-transfer => ha}/actions/bootstrap.go (82%) rename network-tests/{simple-transfer => ha}/actions/start.go (100%) rename network-tests/{simple-transfer => ha}/configs/consul.hcl (100%) create mode 100644 network-tests/ha/configs/ctrl.yml.tmpl rename network-tests/{simple-transfer => ha}/configs/metricbeat.yml (100%) create mode 100644 network-tests/ha/configs/router.yml.tmpl rename network-tests/{simple-transfer => ha}/configs/ziti.hcl (100%) create mode 100644 network-tests/ha/main.go create mode 100644 network-tests/router-test/configs/ctrl.yml create mode 100644 network-tests/router-test/configs/router.yml create mode 100644 network-tests/router-test/main.go delete mode 100644 network-tests/simple-transfer/stages.go create mode 100644 network-tests/simple/actions/bootstrap.go create mode 100644 network-tests/simple/actions/start.go create mode 100644 network-tests/simple/configs/consul.hcl rename network-tests/{simple-transfer => simple}/configs/ctrl.yml (100%) rename network-tests/{simple-transfer => simple}/configs/elasticsearch.repo (100%) create mode 100644 network-tests/simple/configs/metricbeat.yml rename network-tests/{simple-transfer => simple}/configs/router.yml (100%) create mode 100644 network-tests/simple/configs/ziti.hcl create mode 100644 network-tests/simple/simple.go rename network-tests/{simple-transfer => simple}/stages/5_operation/echo_client.go (80%) rename network-tests/{simple-transfer => simple}/stages/5_operation/echo_server.go (100%) create mode 100644 network-tests/tests/files_test.go create mode 100644 network-tests/tests/matrix.md create mode 100644 network-tests/tests/model_test.go diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bfe8f3974..672bb521a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -117,12 +117,10 @@ jobs: ziti_ci_gpg_key: ${{ secrets.ZITI_CI_GPG_KEY }} ziti_ci_gpg_key_id: ${{ secrets.ZITI_CI_GPG_KEY_ID }} run: | - mkdir -p dist/bin $(go env GOPATH)/bin/ziti-ci configure-git $(go env GOPATH)/bin/ziti-ci generate-build-info common/version/info_generated.go version pushd network-tests && go install ./... && popd - pushd network-tests && go build -o ../dist/bin/ ./utils/... && popd - go build -tags=all,tests -o dist/bin/ ./... + go install -tags=all,tests ./... - name: Create Zitilab Bindings run: | @@ -140,19 +138,22 @@ jobs: echo "ziti_version: $($(go env GOPATH)/bin/ziti-ci -q get-current-version)" >> ~/.fablab/bindings.yml cat ~/.fablab/bindings.yml - - name: Test Ziti Command - env: - ZITI_ROOT: dist/bin/ + - name: Create Test Environment run: | + echo "ZITI_ROOT=$(go env GOPATH)/bin" >> "$GITHUB_ENV" $(go env GOPATH)/bin/simple-transfer create $(go env GOPATH)/bin/simple-transfer up + + - name: Test Ziti Command + run: | + echo "ZITI_ROOT=$(go env GOPATH)/bin" >> "$GITHUB_ENV" $(go env GOPATH)/bin/simple-transfer run + pushd network-tests && go test -v ./tests/... && popd - name: Test Ziti Command Teardown if: always() - env: - ZITI_ROOT: dist/bin/ run: | + echo "ZITI_ROOT=$(go env GOPATH)/bin" >> "$GITHUB_ENV" $(go env GOPATH)/bin/simple-transfer dispose $(go env GOPATH)/bin/simple-transfer clean diff --git a/common/getziti/github.go b/common/getziti/github.go new file mode 100644 index 000000000..aa56d9186 --- /dev/null +++ b/common/getziti/github.go @@ -0,0 +1,213 @@ +package getziti + +import ( + "fmt" + "github.com/blang/semver" + "github.com/go-resty/resty/v2" + "github.com/michaelquigley/pfxlog" + "github.com/pkg/errors" + "net/http" + "os" + "path/filepath" + "sort" + "strings" + "time" +) + +// GitHubReleasesData is used to parse the '/releases/latest' response from GitHub +type GitHubReleasesData struct { + Version string `json:"tag_name"` + SemVer semver.Version + Assets []struct { + BrowserDownloadURL string `json:"browser_download_url"` + } +} + +func (self *GitHubReleasesData) GetDownloadUrl(appName string, targetOS, targetArch string) (string, error) { + arches := []string{targetArch} + if strings.ToLower(targetArch) == "amd64" { + arches = append(arches, "x86_64") + } + + for _, asset := range self.Assets { + ok := false + for _, arch := range arches { + if strings.Contains(strings.ToLower(asset.BrowserDownloadURL), arch) { + ok = true + } + } + + ok = ok && strings.Contains(strings.ToLower(asset.BrowserDownloadURL), targetOS) + if ok { + return asset.BrowserDownloadURL, nil + } + } + + return "", errors.Errorf("no download URL found for os/arch %s/%s for '%s'", targetOS, targetArch, appName) +} + +func NewClient() *resty.Client { + // Use a 2-second timeout with a retry count of 5 + return resty. + New(). + SetTimeout(2 * time.Second). + SetRetryCount(5). + SetRedirectPolicy(resty.FlexibleRedirectPolicy(15)) +} + +func getRequest(verbose bool) *resty.Request { + return NewClient(). + SetDebug(verbose). + R() +} + +func GetLatestGitHubReleaseVersion(zitiApp string, verbose bool) (semver.Version, error) { + var result semver.Version + release, err := GetHighestVersionGitHubReleaseInfo(zitiApp, verbose) + if release != nil { + result = release.SemVer + } + return result, err +} + +func GetHighestVersionGitHubReleaseInfo(appName string, verbose bool) (*GitHubReleasesData, error) { + resp, err := getRequest(verbose). + SetQueryParams(map[string]string{}). + SetHeader("Accept", "application/vnd.github.v3+json"). + SetResult([]*GitHubReleasesData{}). + Get("https://api.github.com/repos/openziti/" + appName + "/releases") + + if err != nil { + return nil, errors.Wrapf(err, "unable to get latest version for '%s'", appName) + } + + if resp.StatusCode() == http.StatusNotFound { + return nil, errors.Errorf("unable to get latest version for '%s'; Not Found (invalid URL)", appName) + } + if resp.StatusCode() != http.StatusOK { + return nil, errors.Errorf("unable to get latest version for '%s'; return status=%s", appName, resp.Status()) + } + + result := *resp.Result().(*[]*GitHubReleasesData) + return GetHighestVersionRelease(appName, result) +} + +func GetHighestVersionRelease(appName string, releases []*GitHubReleasesData) (*GitHubReleasesData, error) { + for _, release := range releases { + v, err := semver.ParseTolerant(release.Version) + if err != nil { + return nil, errors.Wrapf(err, "unable to parse version %v for '%v'", release.Version, appName) + } + release.SemVer = v + } + sort.Slice(releases, func(i, j int) bool { + return releases[i].SemVer.GT(releases[j].SemVer) // sort in reverse order + }) + if len(releases) == 0 { + return nil, errors.Errorf("no releases found for '%v'", appName) + } + return releases[0], nil +} + +func GetLatestGitHubReleaseAsset(appName string, appGitHub string, version string, verbose bool) (*GitHubReleasesData, error) { + if version != "latest" { + if appName == "ziti-prox-c" { + version = strings.TrimPrefix(version, "v") + } + + if appName == "ziti-edge-tunnel" { + if !strings.HasPrefix(version, "v") { + version = "v" + version + } + } + } + + if version != "latest " { + version = "tags/" + version + } + + resp, err := getRequest(verbose). + SetQueryParams(map[string]string{}). + SetHeader("Accept", "application/vnd.github.v3+json"). + SetResult(&GitHubReleasesData{}). + Get("https://api.github.com/repos/openziti/" + appGitHub + "/releases/" + version) + + if err != nil { + return nil, fmt.Errorf("unable to get latest version for '%s'; %s", appName, err) + } + + if resp.StatusCode() == http.StatusNotFound { + return nil, fmt.Errorf("unable to get latest version for '%s'; Not Found", appName) + } + if resp.StatusCode() != http.StatusOK { + return nil, fmt.Errorf("unable to get latest version for '%s'; %s", appName, resp.Status()) + } + + result := resp.Result().(*GitHubReleasesData) + return result, nil +} + +// DownloadGitHubReleaseAsset will download a file from the given GitHUb release area +func DownloadGitHubReleaseAsset(fullUrl string, filepath string) (err error) { + resp, err := getRequest(false). + SetOutput(filepath). + Get(fullUrl) + + if err != nil { + return fmt.Errorf("unable to download '%s', %s", fullUrl, err) + } + + if resp.IsError() { + return fmt.Errorf("unable to download file, error HTTP status code [%d] returned for url [%s]", resp.StatusCode(), fullUrl) + } + + return nil +} + +func FindVersionAndInstallGitHubRelease(zitiApp string, zitiAppGitHub string, targetOS, targetArch string, binDir string, version string, verbose bool) error { + if version != "" { + if _, err := semver.Make(strings.TrimPrefix(version, "v")); err != nil { + return err + } + } else { + version = "latest" + } + + release, err := GetLatestGitHubReleaseAsset(zitiApp, zitiAppGitHub, version, verbose) + if err != nil { + return err + } + return InstallGitHubRelease(zitiApp, release, binDir, targetOS, targetArch) +} + +func InstallGitHubRelease(zitiApp string, release *GitHubReleasesData, binDir string, targetOS, targetArch string) error { + fileName := zitiApp + if targetOS == "windows" { + fileName += ".exe" + } + + fullPath := filepath.Join(binDir, fileName) + ext := ".zip" + zipFile := fullPath + ext + + releaseUrl, err := release.GetDownloadUrl(zitiApp, targetOS, targetArch) + if err != nil { + return err + } + + err = DownloadGitHubReleaseAsset(releaseUrl, zipFile) + if err != nil { + return err + } + + err = Unzip(zipFile, binDir) + if err != nil { + return err + } + err = os.Remove(zipFile) + if err != nil { + return err + } + pfxlog.Logger().Infof("Successfully installed '%s' version '%s'", zitiApp, release.Version) + return os.Chmod(fullPath, 0755) +} diff --git a/common/getziti/install_ziti_edge_tunnel.go b/common/getziti/install_ziti_edge_tunnel.go new file mode 100644 index 000000000..bf5770597 --- /dev/null +++ b/common/getziti/install_ziti_edge_tunnel.go @@ -0,0 +1,26 @@ +package getziti + +import ( + "fmt" + "github.com/blang/semver" + c "github.com/openziti/ziti/ziti/constants" + "strings" +) + +func InstallZitiEdgeTunnel(targetVersion, targetOS, targetArch, binDir string, verbose bool) error { + var newVersion semver.Version + + if targetVersion != "" { + newVersion = semver.MustParse(strings.TrimPrefix(targetVersion, "v")) + } else { + v, err := GetLatestGitHubReleaseVersion(c.ZITI_EDGE_TUNNEL_GITHUB, verbose) + if err != nil { + return err + } + newVersion = v + } + + fmt.Println("Attempting to install '" + c.ZITI_EDGE_TUNNEL + "' version: " + newVersion.String()) + return FindVersionAndInstallGitHubRelease( + c.ZITI_EDGE_TUNNEL, c.ZITI_EDGE_TUNNEL_GITHUB, targetOS, targetArch, binDir, newVersion.String(), verbose) +} diff --git a/common/getziti/unzip.go b/common/getziti/unzip.go new file mode 100644 index 000000000..7770442da --- /dev/null +++ b/common/getziti/unzip.go @@ -0,0 +1,74 @@ +package getziti + +import ( + "archive/zip" + "fmt" + "io" + "os" + "path/filepath" + "strings" +) + +func Unzip(src, dest string) error { + r, err := zip.OpenReader(src) + if err != nil { + return err + } + defer func() { + if err := r.Close(); err != nil { + panic(err) + } + }() + + os.MkdirAll(dest, 0755) + + // Closure to address file descriptors issue with all the deferred .Close() methods + extractAndWriteFile := func(f *zip.File) error { + rc, err := f.Open() + if err != nil { + return err + } + defer func() { + if err := rc.Close(); err != nil { + panic(err) + } + }() + + path := filepath.Join(dest, f.Name) + + // Check for ZipSlip (Directory traversal) + if !strings.HasPrefix(path, filepath.Clean(dest)+string(os.PathSeparator)) { + return fmt.Errorf("illegal file path: %s", path) + } + + if f.FileInfo().IsDir() { + os.MkdirAll(path, f.Mode()) + } else { + os.MkdirAll(filepath.Dir(path), f.Mode()) + f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) + if err != nil { + return err + } + defer func() { + if err := f.Close(); err != nil { + panic(err) + } + }() + + _, err = io.Copy(f, rc) + if err != nil { + return err + } + } + return nil + } + + for _, f := range r.File { + err := extractAndWriteFile(f) + if err != nil { + return err + } + } + + return nil +} diff --git a/go.mod b/go.mod index e542cf571..a8d48c470 100644 --- a/go.mod +++ b/go.mod @@ -13,6 +13,7 @@ require ( github.com/go-acme/lego/v4 v4.2.0 github.com/go-openapi/runtime v0.26.0 github.com/go-openapi/strfmt v0.21.7 + github.com/go-resty/resty/v2 v2.7.0 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/golang/protobuf v1.5.2 github.com/google/go-cmp v0.5.9 @@ -92,7 +93,6 @@ require ( github.com/go-openapi/spec v0.20.9 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/go-openapi/validate v0.22.1 // indirect - github.com/go-resty/resty/v2 v2.7.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/gomarkdown/markdown v0.0.0-20230322041520-c84983bdbf2a // indirect diff --git a/network-tests/go.mod b/network-tests/go.mod index 5705fc89d..e4acc2949 100644 --- a/network-tests/go.mod +++ b/network-tests/go.mod @@ -3,25 +3,29 @@ module github.com/openziti/ziti/network-tests go 1.19 require ( - github.com/openziti/fablab v0.4.23 - github.com/openziti/sdk-golang v0.18.26 - github.com/openziti/zitilab v0.1.21 - github.com/sirupsen/logrus v1.9.0 - github.com/spf13/cobra v1.6.1 + github.com/michaelquigley/pfxlog v0.6.10 + github.com/openziti/edge v0.24.239 + github.com/openziti/fablab v0.4.52 + github.com/openziti/sdk-golang v0.18.76 + github.com/openziti/zitilab v0.1.60 + github.com/pkg/errors v0.9.1 + github.com/sirupsen/logrus v1.9.2 + github.com/spf13/cobra v1.7.0 + github.com/stretchr/testify v1.8.3 ) require ( github.com/AppsFlyer/go-sundheit v0.5.0 // indirect github.com/Jeffail/gabs v1.4.0 // indirect - github.com/Jeffail/gabs/v2 v2.6.1 // indirect + github.com/Jeffail/gabs/v2 v2.7.0 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/MichaelMure/go-term-markdown v0.1.4 // indirect github.com/MichaelMure/go-term-text v0.3.1 // indirect github.com/alecthomas/chroma v0.10.0 // indirect - github.com/andybalholm/brotli v1.0.4 // indirect + github.com/andybalholm/brotli v1.0.5 // indirect github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd // indirect - github.com/armon/go-metrics v0.3.10 // indirect - github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect + github.com/armon/go-metrics v0.4.1 // indirect + github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/aws/aws-sdk-go v1.44.118 // indirect github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c // indirect github.com/blang/semver v3.5.1+incompatible // indirect @@ -33,17 +37,17 @@ require ( github.com/dgryski/dgoogauth v0.0.0-20190221195224-5a805980a5f3 // indirect github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663 // indirect github.com/disintegration/imaging v1.6.2 // indirect - github.com/dlclark/regexp2 v1.8.0 // indirect + github.com/dlclark/regexp2 v1.9.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/ef-ds/deque v1.0.4 // indirect github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/fatih/color v1.14.1 // indirect + github.com/fatih/color v1.15.0 // indirect github.com/felixge/httpsnoop v1.0.1 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect github.com/go-acme/lego/v4 v4.2.0 // indirect - github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-openapi/analysis v0.21.4 // indirect @@ -53,90 +57,89 @@ require ( github.com/go-openapi/loads v0.21.2 // indirect github.com/go-openapi/runtime v0.25.0 // indirect github.com/go-openapi/spec v0.20.8 // indirect - github.com/go-openapi/strfmt v0.21.3 // indirect + github.com/go-openapi/strfmt v0.21.7 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/go-openapi/validate v0.22.1 // indirect github.com/go-resty/resty/v2 v2.7.0 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c // indirect + github.com/gomarkdown/markdown v0.0.0-20230322041520-c84983bdbf2a // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/hashicorp/go-hclog v1.4.0 // indirect + github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-msgpack v0.5.5 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect - github.com/hashicorp/golang-lru/v2 v2.0.1 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/raft v1.3.11 // indirect + github.com/hashicorp/raft v1.4.0 // indirect github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/jedib0t/go-pretty/v6 v6.4.4 // indirect + github.com/jedib0t/go-pretty/v6 v6.4.6 // indirect github.com/jessevdk/go-flags v1.5.0 // indirect github.com/jinzhu/copier v0.3.5 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/josharian/native v1.0.0 // indirect - github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6 // indirect + github.com/kataras/go-events v0.0.3 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 // indirect github.com/kr/fs v0.1.0 // indirect - github.com/kyokomi/emoji/v2 v2.2.11 // indirect + github.com/kyokomi/emoji/v2 v2.2.12 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/lucsky/cuid v1.2.1 // indirect - github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de // indirect + github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a // indirect github.com/magiconair/properties v1.8.5 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.18 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/mdlayher/netlink v1.7.1 // indirect github.com/mdlayher/socket v0.4.0 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4 // indirect - github.com/michaelquigley/pfxlog v0.6.9 // indirect - github.com/miekg/dns v1.1.50 // indirect + github.com/miekg/dns v1.1.53 // indirect github.com/miekg/pkcs11 v1.1.1 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/natefinch/lumberjack v2.0.0+incompatible // indirect github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce // indirect - github.com/netfoundry/secretstream v0.1.2 // indirect + github.com/netfoundry/secretstream v0.1.5 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/openziti/agent v1.0.8 // indirect - github.com/openziti/channel/v2 v2.0.26 // indirect - github.com/openziti/edge v0.24.95 // indirect - github.com/openziti/fabric v0.22.7 // indirect - github.com/openziti/foundation/v2 v2.0.10 // indirect - github.com/openziti/identity v1.0.30 // indirect - github.com/openziti/jwks v1.0.2 // indirect - github.com/openziti/metrics v1.2.3 // indirect - github.com/openziti/runzmd v1.0.9 // indirect - github.com/openziti/storage v0.1.33 // indirect - github.com/openziti/transport/v2 v2.0.50 // indirect + github.com/openziti/agent v1.0.10 // indirect + github.com/openziti/channel/v2 v2.0.58 // indirect + github.com/openziti/edge-api v0.25.11 // indirect + github.com/openziti/fabric v0.22.87 // indirect + github.com/openziti/foundation/v2 v2.0.24 // indirect + github.com/openziti/identity v1.0.45 // indirect + github.com/openziti/jwks v1.0.3 // indirect + github.com/openziti/metrics v1.2.19 // indirect + github.com/openziti/runzmd v1.0.20 // indirect + github.com/openziti/storage v0.1.49 // indirect + github.com/openziti/transport/v2 v2.0.72 // indirect github.com/openziti/x509-claims v1.0.3 // indirect github.com/openziti/xweb/v2 v2.0.2 // indirect - github.com/openziti/ziti v0.27.2 // indirect + github.com/openziti/ziti v0.27.9 // indirect github.com/openziti/ziti-db-explorer v1.1.1 // indirect github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 // indirect github.com/pelletier/go-toml v1.9.4 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pkg/sftp v1.13.5 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/rivo/uniseg v0.4.3 // indirect + github.com/rivo/uniseg v0.4.4 // indirect github.com/rodaine/table v1.0.1 // indirect github.com/russross/blackfriday v1.5.2 // indirect - github.com/shirou/gopsutil/v3 v3.23.1 // indirect + github.com/shirou/gopsutil/v3 v3.23.3 // indirect + github.com/shoenig/go-m1cpu v0.1.5 // indirect github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect github.com/speps/go-hashids v2.0.0+incompatible // indirect github.com/spf13/afero v1.6.0 // indirect @@ -144,7 +147,6 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.10.0 // indirect - github.com/stretchr/testify v1.8.1 // indirect github.com/subosito/gotenv v1.2.0 // indirect github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/tklauser/go-sysconf v0.3.11 // indirect @@ -156,21 +158,21 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect go.etcd.io/bbolt v1.3.7 // indirect - go.mongodb.org/mongo-driver v1.11.1 // indirect + go.mongodb.org/mongo-driver v1.11.4 // indirect go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect - go.opentelemetry.io/otel v1.11.2 // indirect - go.opentelemetry.io/otel/trace v1.11.2 // indirect - golang.org/x/crypto v0.5.0 // indirect - golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b // indirect - golang.org/x/image v0.5.0 // indirect - golang.org/x/mod v0.6.0 // indirect - golang.org/x/net v0.7.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/term v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect - golang.org/x/tools v0.2.0 // indirect - google.golang.org/protobuf v1.28.1 // indirect + go.opentelemetry.io/otel v1.14.0 // indirect + go.opentelemetry.io/otel/trace v1.14.0 // indirect + golang.org/x/crypto v0.9.0 // indirect + golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect + golang.org/x/image v0.7.0 // indirect + golang.org/x/mod v0.8.0 // indirect + golang.org/x/net v0.10.0 // indirect + golang.org/x/sync v0.2.0 // indirect + golang.org/x/sys v0.8.0 // indirect + golang.org/x/term v0.8.0 // indirect + golang.org/x/text v0.9.0 // indirect + golang.org/x/tools v0.6.0 // indirect + google.golang.org/protobuf v1.30.0 // indirect gopkg.in/AlecAivazis/survey.v1 v1.8.7 // indirect gopkg.in/ini.v1 v1.66.2 // indirect gopkg.in/resty.v1 v1.12.0 // indirect diff --git a/network-tests/go.sum b/network-tests/go.sum index 5146eb36f..45a9d74a8 100644 --- a/network-tests/go.sum +++ b/network-tests/go.sum @@ -60,8 +60,8 @@ github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3 github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Jeffail/gabs v1.4.0 h1://5fYRRTq1edjfIrQGvdkcd22pkYUrHZ5YC/H2GJVAo= github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= -github.com/Jeffail/gabs/v2 v2.6.1 h1:wwbE6nTQTwIMsMxzi6XFQQYRZ6wDc1mSdxoAN+9U4Gk= -github.com/Jeffail/gabs/v2 v2.6.1/go.mod h1:xCn81vdHKxFUuWWAaD5jCTQDNPBMh5pPs9IJ+NcziBI= +github.com/Jeffail/gabs/v2 v2.7.0 h1:Y2edYaTcE8ZpRsR2AtmPu5xQdFDIthFG0jYhu5PY8kg= +github.com/Jeffail/gabs/v2 v2.7.0/go.mod h1:dp5ocw1FvBBQYssgHsG7I1WYsiLRtkUaB1FEtSwvNUw= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/MichaelMure/go-term-markdown v0.1.4 h1:Ir3kBXDUtOX7dEv0EaQV8CNPpH+T7AfTh0eniMOtNcs= @@ -88,8 +88,8 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/aliyun/alibaba-cloud-sdk-go v1.61.458/go.mod h1:pUKYbK5JQ+1Dfxk80P0qxGqe5dkxDoabbZS7zOcouyA= -github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd h1:fjJY1LimH0wVCvOHLX35SCX/MbWomAglET1H2kvz7xc= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= @@ -98,12 +98,12 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg= github.com/armon/go-metrics v0.3.8/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= -github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8Uo= -github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= +github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= +github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= -github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/aws/aws-sdk-go v1.30.20/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.44.118 h1:FJOqIRTukf7+Ulp047/k7JB6eqMXNnj7eb+coORThHQ= github.com/aws/aws-sdk-go v1.44.118/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= @@ -161,8 +161,8 @@ github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1 github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.8.0 h1:rJD5HeGIT/2b5CDk63FVCwZA3qgYElfg+oQK7uH5pfE= -github.com/dlclark/regexp2 v1.8.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dlclark/regexp2 v1.9.0 h1:pTK/l/3qYIKaRXuHnEnIf7Y5NxfRPfpb7dis6/gdlVI= +github.com/dlclark/regexp2 v1.9.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnsimple/dnsimple-go v0.63.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -186,8 +186,8 @@ github.com/exoscale/egoscale v0.23.0/go.mod h1:hRo78jkjkCDKpivQdRBEpNYF5+cVpCJCP github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= -github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= @@ -212,8 +212,8 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= @@ -245,8 +245,9 @@ github.com/go-openapi/spec v0.20.8 h1:ubHmXNY3FCIOinT8RNrrPfGc9t7I1qhPtdOGoG2AxR github.com/go-openapi/spec v0.20.8/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= -github.com/go-openapi/strfmt v0.21.3 h1:xwhj5X6CjXEZZHMWy1zKJxvW9AfHC9pkyUjLvHtKG7o= github.com/go-openapi/strfmt v0.21.3/go.mod h1:k+RzNO0Da+k3FrrynSNN8F7n/peCmQQqbbXjtDfvmGg= +github.com/go-openapi/strfmt v0.21.7 h1:rspiXgNWgeUzhjo1YU01do6qsahtJNByjLVbPLNHb8k= +github.com/go-openapi/strfmt v0.21.7/go.mod h1:adeGTkxE44sPyLk0JV235VQAO/ZXUr8KAzYjclFs3ew= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= @@ -325,8 +326,8 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU= -github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c h1:iyaGYbCmcYK0Ja9a3OUa2Fo+EaN0cbLu0eKpBwPFzc8= -github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= +github.com/gomarkdown/markdown v0.0.0-20230322041520-c84983bdbf2a h1:AWZzzFrqyjYlRloN6edwTLTUbKxf5flLXNuTBDm3Ews= +github.com/gomarkdown/markdown v0.0.0-20230322041520-c84983bdbf2a/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -387,8 +388,8 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v1.4.0 h1:ctuWFGrhFha8BnnzxqeRGidlEcQkDyL5u8J8t5eA11I= -github.com/hashicorp/go-hclog v1.4.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= +github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -409,16 +410,16 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru/v2 v2.0.1 h1:5pv5N1lT1fjLg2VQ5KWc7kmucp2x/kvFOnxuVTqZ6x4= -github.com/hashicorp/golang-lru/v2 v2.0.1/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/golang-lru/v2 v2.0.2 h1:Dwmkdr5Nc/oBiXgJS3CDHNhJtIHkuZ3DZF5twqnfBdU= +github.com/hashicorp/golang-lru/v2 v2.0.2/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/raft v1.1.0/go.mod h1:4Ak7FSPnuvmb0GV6vgIAJ4vYT4bek9bb6Q+7HVbyzqM= -github.com/hashicorp/raft v1.3.11 h1:p3v6gf6l3S797NnK5av3HcczOC1T5CLoaRvg0g9ys4A= -github.com/hashicorp/raft v1.3.11/go.mod h1:J8naEwc6XaaCfts7+28whSeRvCqTd6e20BlCU3LtEO4= +github.com/hashicorp/raft v1.4.0 h1:tn28S/AWv0BtRQgwZv/1NELu8sCvI0FixqL8C8MYKeY= +github.com/hashicorp/raft v1.4.0/go.mod h1:nz64BIjXphDLATfKGG5RzHtNUPioLeKFsXEm88yTVew= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 h1:CO8dBMLH6dvE1jTn/30ZZw3iuPsNfajshWoJTnVc5cc= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0/go.mod h1:nTakvJ4XYq45UXtn0DbwR4aU9ZdjlnIenpbs6Cd+FM0= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= @@ -429,11 +430,10 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jedib0t/go-pretty/v6 v6.4.4 h1:N+gz6UngBPF4M288kiMURPHELDMIhF/Em35aYuKrsSc= -github.com/jedib0t/go-pretty/v6 v6.4.4/go.mod h1:MgmISkTWDSFu0xOqiZ0mKNntMQ2mDgOcwOkwBEkMDJI= +github.com/jedib0t/go-pretty/v6 v6.4.6 h1:v6aG9h6Uby3IusSSEjHaZNXpHFhzqMmjXcPq1Rjl9Jw= +github.com/jedib0t/go-pretty/v6 v6.4.6/go.mod h1:Ndk3ase2CkQbXLLNf5QDHoYb6J9WtVfmHZu9n8rk2xs= github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= @@ -460,8 +460,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6 h1:XXnySN8wVet8S4UlcXHjh8Oa7618Eu7z92HxU5cIfhA= -github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6/go.mod h1:6IxMW59VJdEIqj3bjFGJvGLRdb0WHtrlxPZy9qXctcg= +github.com/kataras/go-events v0.0.3 h1:o5YK53uURXtrlg7qE/vovxd/yKOJcLuFtPQbf1rYMC4= +github.com/kataras/go-events v0.0.3/go.mod h1:bFBgtzwwzrag7kQmGuU1ZaVxhK2qseYPQomXoVEMsj4= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 h1:WjT3fLi9n8YWh/Ih8Q1LHAPsTqGddPcHqscN+PJ3i68= @@ -485,8 +485,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kyokomi/emoji/v2 v2.2.8/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= -github.com/kyokomi/emoji/v2 v2.2.11 h1:Pf/ZWVTbnAVkHOLJLWjPxM/FmgyPe+d85cv/OLP5Yus= -github.com/kyokomi/emoji/v2 v2.2.11/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= +github.com/kyokomi/emoji/v2 v2.2.12 h1:sSVA5nH9ebR3Zji1o31wu3yOwD1zKXQA2z0zUyeit60= +github.com/kyokomi/emoji/v2 v2.2.12/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/linode/linodego v0.21.0/go.mod h1:UTpq1JUZD0CZsJ8rt+0CRkqbzrp1MbGakVPt2DXY5Mk= @@ -497,8 +497,8 @@ github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i github.com/lucsky/cuid v1.2.1 h1:MtJrL2OFhvYufUIn48d35QGXyeTC8tn0upumW9WwTHg= github.com/lucsky/cuid v1.2.1/go.mod h1:QaaJqckboimOmhRSJXSx/+IT+VTfxfPGSo/6mfgUfmE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de h1:V53FWzU6KAZVi1tPp5UIsMoUWJ2/PNwYIDXnu7QuBCE= -github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= +github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a h1:N9zuLhTvBSRt0gWSiJswwQ2HqDmtX/ZCDJURnKUt1Ik= +github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -526,8 +526,8 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= +github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= @@ -549,12 +549,12 @@ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4 h1:O0aAES+Hu4tySETys37Xd1wMcUohr5X7yM3qaRSHKRw= github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4/go.mod h1:ZgenLagNkpruEGzNeXiQH9RtZedSLKw1WlDTJWPZzpk= -github.com/michaelquigley/pfxlog v0.6.9 h1:K/weH6ARu58aEDQi0ccinItvV958CeO6Ri4jqeFwd/w= -github.com/michaelquigley/pfxlog v0.6.9/go.mod h1:D2vg1tPyPdSXWWkSnGk6Fomwh5b3clwVJDUh71tq8Sk= +github.com/michaelquigley/pfxlog v0.6.10 h1:IbC/H3MmSDcPlQHF1UZPQU13Dkrs0+ycWRyQd2ihnjw= +github.com/michaelquigley/pfxlog v0.6.10/go.mod h1:gEiNTfKEX6cJHSwRpOuqBpc8oYrlhMiDK/xMk/gV7D0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= -github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= +github.com/miekg/dns v1.1.53 h1:ZBkuHr5dxHtB1caEOlZTLPo7D3L3TWckgUUs/RHfDxw= +github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= @@ -584,8 +584,8 @@ github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6Yf github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce h1:TqjP/BTDrwN7zP9xyXVuLsMBXYMt6LLYi55PlrIcq8U= github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:ifHPsLndGGzvgzcaXUvzmt6LxKT4pJ+uzEhtnMt+f7A= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= -github.com/netfoundry/secretstream v0.1.2 h1:NgqrYytDnjKbOfWI29TT0SJM+RwB3yf9MIkJVJaU+J0= -github.com/netfoundry/secretstream v0.1.2/go.mod h1:uasYkYSp0MmNSlKOWJ2sVzxPms8e58TS4ENq4yro86k= +github.com/netfoundry/secretstream v0.1.5 h1:iQ4brqUeZO7xNlSpwZDhekPW8d5LlRyHwvvevBOP1IM= +github.com/netfoundry/secretstream v0.1.5/go.mod h1:N6Mvl9Lk8xs84hFS9qZfjcJWiXmpzqaXW/L9W0JYfXY= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nrdcg/auroradns v1.0.1/go.mod h1:y4pc0i9QXYlFCWrhWrUSIETnZgrf4KuwjDIWmmXo3JI= github.com/nrdcg/desec v0.5.0/go.mod h1:2ejvMazkav1VdDbv2HeQO7w+Ta1CGHqzQr27ZBYTuEQ= @@ -612,42 +612,44 @@ github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openziti/agent v1.0.8 h1:qB4zQO9dz3PL8qbeyzCWbwTrtHZPEZlYtjkJJ78SJPo= -github.com/openziti/agent v1.0.8/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= -github.com/openziti/channel/v2 v2.0.26 h1:IIEnno26FuywcyCwCie1U7OHoB8HzuG95EzEnvtKmio= -github.com/openziti/channel/v2 v2.0.26/go.mod h1:zZO0bgVYY9FCDs2EMRakDl6wIfyOWuzgPzPL8EvQ5Ks= -github.com/openziti/edge v0.24.95 h1:Lj7ycWVOXbqt3TK6NSGPWXj5bp3/5rX7rA+bR5wA8Nc= -github.com/openziti/edge v0.24.95/go.mod h1:nVamtrBekK372q8bbKK/D6t0W7LBqQ+Miu0YE1u3od4= -github.com/openziti/fablab v0.4.23 h1:GKbSceX8hphBfY0RtYkrq7LTilnV61w4JCb4hh70Zio= -github.com/openziti/fablab v0.4.23/go.mod h1:ff6XCI4YryKcyhblK3zNVkiEH0JXDhO6ZkHQN4N0wDE= -github.com/openziti/fabric v0.22.7 h1:o0k/QnCpVZPiC77fh/NoUVCoeQNhfBm4oOICcJsdkWc= -github.com/openziti/fabric v0.22.7/go.mod h1:NITYnGTCeu0ENixTd7qXFzGyIDm5GkyJhxKYTnmFzjk= -github.com/openziti/foundation/v2 v2.0.10 h1:IeOkcPbgBpBTw4JrWz8s9Z76vO/m+i2uIE0cMZ0C2DM= -github.com/openziti/foundation/v2 v2.0.10/go.mod h1:Z0gnQsGJb/H/B+pixLtmCIpw1dBllD4QoT6LeD35WzA= -github.com/openziti/identity v1.0.30 h1:N2WDdK7MpeXuHCRjMo6N/QMtUXUkenUEqfKWXFNu2oE= -github.com/openziti/identity v1.0.30/go.mod h1:SPZAaqvDToS2jtae4D2fvO9IsR6G6FKNZ8WTqAwKKJE= -github.com/openziti/jwks v1.0.2 h1:32BGXIAnefS+v7uXKPb1x8/cQ7srek6Ai06dsrMTY4E= -github.com/openziti/jwks v1.0.2/go.mod h1:KwO0x9FBG0aoJS5f6nH5xeHoplyR1H143SMI9kF0mC8= -github.com/openziti/metrics v1.2.3 h1:h9+mSU673QLSMOb3YibD1vNgE0yIDZ5leiUqDwN5szE= -github.com/openziti/metrics v1.2.3/go.mod h1:jK8BfZ9nXMhO+LPcUPpN/sebrLfIeF4uaHlm5JIF7BY= -github.com/openziti/runzmd v1.0.9 h1:gQnZT5cACuVpcBBBHWIaN9Vmwv8KUNa7LBLG8Xi13/U= -github.com/openziti/runzmd v1.0.9/go.mod h1:s6amx7gbzewUqlnq8dcvJ50eb0ryjQtknPYubOHuIug= -github.com/openziti/sdk-golang v0.18.26 h1:Wk2s88R9b5SeP3D3uEpqE31ffY20Y1v2ZSyYfgud/BA= -github.com/openziti/sdk-golang v0.18.26/go.mod h1:QCoDwqjGm8qxcIDboY+jglfjZVdz8gREquRMpX7jz8I= -github.com/openziti/storage v0.1.33 h1:c3jdiJPIthYC51Ye2VOBGuz3g1DGVzmjGIlgPs1BcOg= -github.com/openziti/storage v0.1.33/go.mod h1:G4swa9DU8oG+B+tv4X7X5QjtI8nxbXhEUKlDbwNowBY= -github.com/openziti/transport/v2 v2.0.50 h1:bMk0CeQhg61vaCpAUANlu+hZTqyZSa7IFX3ZYFi1tns= -github.com/openziti/transport/v2 v2.0.50/go.mod h1:I3qtYJhHzEzydqqdIq8IZStwPV7ybynK0mJP17MB/q0= +github.com/openziti/agent v1.0.10 h1:9oTmNXghlggD+O7BJdBp3PkD5kAZ1ssSC6IHZkMakzQ= +github.com/openziti/agent v1.0.10/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= +github.com/openziti/channel/v2 v2.0.58 h1:j9baDM8nEAgHNhJ9n1h+WWbFSgCQCjvNB3KCr5x5q6c= +github.com/openziti/channel/v2 v2.0.58/go.mod h1:Wa3TS5o4pBFSGnDb9zRCGww29ZVXk0GnupwNpb/2DWE= +github.com/openziti/edge v0.24.239 h1:S7bAy/BfpGpKwXnfWuGgWpfjUEuJ5iwZojTxu9W8DO0= +github.com/openziti/edge v0.24.239/go.mod h1:G6PLbcyib36KH9hN6tMacr2UMin15EmZioSGPPptJ0U= +github.com/openziti/edge-api v0.25.11 h1:HHjDgoybPZGRZ+tM2udehI+U5Xv991iGED8E6CtDb9w= +github.com/openziti/edge-api v0.25.11/go.mod h1:PBFMYELgr7JUuaCqHobq1U+WESsutzgEDoELU/9qFOg= +github.com/openziti/fablab v0.4.52 h1:X5+NaRnfPxbzhxUh9b4IQmVNVgYWFf8/Ck2sKNz77ho= +github.com/openziti/fablab v0.4.52/go.mod h1:aF8Fu3C8hnnaOJyAZz3AXGY4cMxQyBLhoIlSRJ/VVpc= +github.com/openziti/fabric v0.22.87 h1:Vc71NOFGLQapr8YZjx4p+f9+HHKm63o4kpt4LMjXTY4= +github.com/openziti/fabric v0.22.87/go.mod h1:w/cleYmpE/coUjjCzoRbpO648QWwSee0V4H8mfyqCdg= +github.com/openziti/foundation/v2 v2.0.24 h1:cNJCbh4o9E+7mtSUDo7ZBuMoPjJAilDWgr7X8ntRz/Q= +github.com/openziti/foundation/v2 v2.0.24/go.mod h1:H0w/ldKyE0ynwpIwt68k2rhMwt874IVxPQcimMuHJ3s= +github.com/openziti/identity v1.0.45 h1:e2kXoMCPcaUXy+k6GwasuKeGSJwavFEr+eOvUA228UY= +github.com/openziti/identity v1.0.45/go.mod h1:fQ5bjNu4L1Yqk011xNB1QXvsmBRHnm5d498fi1bhl24= +github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc= +github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ= +github.com/openziti/metrics v1.2.19 h1:gQO3e2lUotRHBdGUXYBPWMIErIyyF5hw0EakwQbJzuM= +github.com/openziti/metrics v1.2.19/go.mod h1:ovvxTpDBxGLcVLHgPTFFvwT4ur8p4Z76BPUhIE5iwqc= +github.com/openziti/runzmd v1.0.20 h1:LzRPZRVO9AepAFzGTEsRGp2LRVtJp5vr+QOBl8KbN4w= +github.com/openziti/runzmd v1.0.20/go.mod h1:IXTk5dHAZxtqjg9WVHOiyXHqEHZdwaH5Wg80h5Ux3bQ= +github.com/openziti/sdk-golang v0.18.76 h1:D+UW1lpGHBBgfVrObpauq9RvJV/TFPdEEshfuPkiMcI= +github.com/openziti/sdk-golang v0.18.76/go.mod h1:kw/5rWDLwx52iwW/4a0VRQMUi7GPSI3aETx+G5TvdFQ= +github.com/openziti/storage v0.1.49 h1:luRsssYlGhpiJxjgc+FWF/yd2JLs9IKfeKID/5Hknrg= +github.com/openziti/storage v0.1.49/go.mod h1:Le2VFNL67YewLtaCnGNXPLH18Yrh/EMxeJ/eXxTOwak= +github.com/openziti/transport/v2 v2.0.72 h1:yjJtxy3Ckx5I4pDicmxILTdqQB6D18LSg2Zvsde0T00= +github.com/openziti/transport/v2 v2.0.72/go.mod h1:YuDvm+syZc9nfdhbdPZdtuL1Dfw+bELWhWVYAg73ups= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= github.com/openziti/xweb/v2 v2.0.2/go.mod h1:KQOOlnJk08EZT3TWkvDj/pbIUEVbgG0IrrNzl8gsi40= -github.com/openziti/ziti v0.27.2 h1:OPNwVOy2OzucFrThOckWxr7GaD5CTBXsY2dZA23W5a4= -github.com/openziti/ziti v0.27.2/go.mod h1:ZnXzNonbbJPd+mmkeEY6moICdfNrdOs1DD8zdWDNMcc= +github.com/openziti/ziti v0.27.9 h1:GsPqGFpHLLrvx4G+nXs7gKDyeSwl46D4GOLNFBmNI9c= +github.com/openziti/ziti v0.27.9/go.mod h1:tSF7cciowQXna3O++xyUSq2S7hPZwYnH+WUwSr2NNsA= github.com/openziti/ziti-db-explorer v1.1.1 h1:G0eoTby+aIjjt5TxEfR+FMI2CWd4RvZFjzaIMX2lEBw= github.com/openziti/ziti-db-explorer v1.1.1/go.mod h1:h76h7Tsb+khb0v+CqYKL6ifUfJbUMjGBFU2IvupfBE4= -github.com/openziti/zitilab v0.1.21 h1:ZZEq86qMvOAtzcgL1b2CqmZDnGqBH8cZ1nXcHdd3I+E= -github.com/openziti/zitilab v0.1.21/go.mod h1:CwMY50NZENpbVuSZMq+n8OngRVtoVe7qnZB/dEbmvcE= +github.com/openziti/zitilab v0.1.60 h1:uyg/1KXA5+dhg3ibgPqqvxrTRP5YvplTaSHj2w4/3oQ= +github.com/openziti/zitilab v0.1.60/go.mod h1:lNk7ss0dpBnowHdd0LX7S688a+DKFQigX0FVhbcm5LY= github.com/oracle/oci-go-sdk v24.2.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/orcaman/concurrent-map/v2 v2.0.1 h1:jOJ5Pg2w1oeB6PeDurIYf6k9PQ+aTITr/6lP/L/zp6c= github.com/orcaman/concurrent-map/v2 v2.0.1/go.mod h1:9Eq3TG2oBe5FirmYWQfYO5iH1q0Jv47PLaNK++uCdOM= @@ -658,7 +660,6 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= @@ -709,8 +710,8 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5X github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= -github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= +github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rodaine/table v1.0.1 h1:U/VwCnUxlVYxw8+NJiLIuCxA/xa6jL38MY3FYysVWWQ= github.com/rodaine/table v1.0.1/go.mod h1:UVEtfBsflpeEcD56nF4F5AocNFta0ZuolpSVdPtlmP4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -726,16 +727,21 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/sacloud/libsacloud v1.36.2/go.mod h1:P7YAOVmnIn3DKHqCZcUKYUXmSwGBm3yS7IBEjKVSrjg= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil/v3 v3.23.1 h1:a9KKO+kGLKEvcPIs4W62v0nu3sciVDOOOPUD0Hz7z/4= -github.com/shirou/gopsutil/v3 v3.23.1/go.mod h1:NN6mnm5/0k8jw4cBfCnJtr5L7ErOTg18tMNpgFkn0hA= +github.com/shirou/gopsutil/v3 v3.23.3 h1:Syt5vVZXUDXPEXpIBt5ziWsJ4LdSAAxF4l/xZeQgSEE= +github.com/shirou/gopsutil/v3 v3.23.3/go.mod h1:lSBNN6t3+D6W5e5nXTxc8KIMMVxAcS+6IJlffjRRlMU= +github.com/shoenig/go-m1cpu v0.1.4/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= +github.com/shoenig/go-m1cpu v0.1.5 h1:LF57Z/Fpb/WdGLjt2HZilNnmZOxg/q2bSKTQhgbrLrQ= +github.com/shoenig/go-m1cpu v0.1.5/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= +github.com/shoenig/test v0.6.3 h1:GVXWJFk9PiOjN0KoJ7VrJGH6uLPnqxR7/fe3HUPfE0c= +github.com/shoenig/test v0.6.3/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y= +github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M= github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= @@ -751,8 +757,8 @@ github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -778,8 +784,10 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= @@ -827,8 +835,8 @@ go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsX go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= -go.mongodb.org/mongo-driver v1.11.1 h1:QP0znIRTuL0jf1oBQoAoM0C6ZJfBK4kx0Uumtv1A7w8= -go.mongodb.org/mongo-driver v1.11.1/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= +go.mongodb.org/mongo-driver v1.11.4 h1:4ayjakA013OdpGyL2K3ZqylTac/rMjrJOMZ1EHizXas= +go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -840,11 +848,11 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/otel v1.11.2 h1:YBZcQlsVekzFsFbjygXMOXSs6pialIZxcjfO/mBDmR0= -go.opentelemetry.io/otel v1.11.2/go.mod h1:7p4EUV+AqgdlNV9gL97IgUZiVR3yrFXYo53f9BM3tRI= +go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= +go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= go.opentelemetry.io/otel/sdk v1.11.1 h1:F7KmQgoHljhUuJyA+9BiU+EkJfyX5nVVF4wyzWZpKxs= -go.opentelemetry.io/otel/trace v1.11.2 h1:Xf7hWSF2Glv0DE3MH7fBHvtpSBsjcBUe5MYAmZM/+y0= -go.opentelemetry.io/otel/trace v1.11.2/go.mod h1:4N+yC7QEz7TTsG9BSRLNAa63eg5E06ObSbKPmxQ/pKA= +go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= +go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= @@ -863,15 +871,14 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -882,14 +889,14 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b h1:EqBVA+nNsObCwQoBEHy4wLU0pi7i8a4AL3pbItPdPkE= -golang.org/x/exp v0.0.0-20230202163644-54bba9f4231b/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191206065243-da761ea9ff43/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.5.0 h1:5JMiNunQeQw++mMOz48/ISeNu3Iweh/JaZU8ZLqHRrI= -golang.org/x/image v0.5.0/go.mod h1:FVC7BI/5Ym8R25iw5OLsgshdUBbT1h5jZTpA+mvAdZ4= +golang.org/x/image v0.7.0 h1:gzS29xtG1J5ybQlv0PuyfE3nmc6R4qB73m6LUUmvFuw= +golang.org/x/image v0.7.0/go.mod h1:nd/q4ef1AKKYl/4kft7g+6UyGbdiqWqTP1ZAbRoV7Rg= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -914,8 +921,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -963,13 +970,14 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -995,8 +1003,9 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180606202747-9527bec2660b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1076,14 +1085,18 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1093,8 +1106,10 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1158,10 +1173,9 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1271,8 +1285,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/AlecAivazis/survey.v1 v1.8.7 h1:oBJqtgsyBLg9K5FK9twNUbcPnbCPoh+R9a+7nag3qJM= gopkg.in/AlecAivazis/survey.v1 v1.8.7/go.mod h1:iBNOmqKz/NUbZx3bA+4hAGLRC7fSK7tgtVDT4tB22XA= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= diff --git a/network-tests/simple-transfer/actions/bootstrap.go b/network-tests/ha/actions/bootstrap.go similarity index 82% rename from network-tests/simple-transfer/actions/bootstrap.go rename to network-tests/ha/actions/bootstrap.go index d5936781b..0b853da87 100644 --- a/network-tests/simple-transfer/actions/bootstrap.go +++ b/network-tests/ha/actions/bootstrap.go @@ -23,13 +23,17 @@ func NewBootstrapAction() model.ActionBinder { func (a *bootstrapAction) bind(m *model.Model) model.Action { workflow := actions.Workflow() + workflow.AddAction(component.Stop(".ctrl")) workflow.AddAction(host.GroupExec("*", 25, "rm -f logs/*")) - workflow.AddAction(component.Stop("#ctrl")) - workflow.AddAction(edge.InitController("#ctrl")) - workflow.AddAction(component.Start("#ctrl")) + workflow.AddAction(host.GroupExec(".ctrl", 5, "rf -rf ./fablab/ctrldata")) + workflow.AddAction(component.Start(".ctrl")) workflow.AddAction(semaphore.Sleep(2 * time.Second)) + workflow.AddAction(edge.RaftJoin(".ctrl")) + workflow.AddAction(semaphore.Sleep(2 * time.Second)) + workflow.AddAction(edge.InitRaftController("#ctrl1")) + workflow.AddAction(semaphore.Sleep(time.Second)) - workflow.AddAction(edge.Login("#ctrl")) + workflow.AddAction(edge.Login("#ctrl1")) workflow.AddAction(component.StopInParallel(models.EdgeRouterTag, 25)) workflow.AddAction(edge.InitEdgeRouters(models.EdgeRouterTag, 2)) @@ -45,7 +49,5 @@ func (a *bootstrapAction) bind(m *model.Model) model.Action { workflow.AddAction(zitilib_actions.Edge("create", "service-edge-router-policy", "echo", "--semantic", "AnyOf", "--service-roles", "@echo", "--edge-router-roles", "#all")) - workflow.AddAction(component.Stop(models.ControllerTag)) - return workflow } diff --git a/network-tests/simple-transfer/actions/start.go b/network-tests/ha/actions/start.go similarity index 100% rename from network-tests/simple-transfer/actions/start.go rename to network-tests/ha/actions/start.go diff --git a/network-tests/simple-transfer/configs/consul.hcl b/network-tests/ha/configs/consul.hcl similarity index 100% rename from network-tests/simple-transfer/configs/consul.hcl rename to network-tests/ha/configs/consul.hcl diff --git a/network-tests/ha/configs/ctrl.yml.tmpl b/network-tests/ha/configs/ctrl.yml.tmpl new file mode 100644 index 000000000..b5add84e4 --- /dev/null +++ b/network-tests/ha/configs/ctrl.yml.tmpl @@ -0,0 +1,196 @@ +v: 3 + +raft: + minClusterSize: 3 + dataDir: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/ctrldata + +identity: + cert: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/pki/{{ .Component.PublicIdentity }}/certs/{{ .Component.PublicIdentity }}-server.cert + key: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/pki/{{ .Component.PublicIdentity }}/keys/{{ .Component.PublicIdentity }}-server.key + ca: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/pki/{{ .Component.PublicIdentity }}/certs/{{ .Component.PublicIdentity }}-server.chain.pem + +# the endpoint that routers will connect to the controller over. +ctrl: + listener: tls:0.0.0.0:6262 + options: + advertiseAddress: tls:{{.Host.PublicIp}}:6262 + # (optional) settings + # set the maximum number of connect requests that are buffered and waiting to be acknowledged (1 to 5000, default 1000) + #maxQueuedConnects: 50 + + # the maximum number of connects that have begun hello synchronization (1 to 1000, default 16) + #maxOutstandingConnects: 100 + + # the number of milliseconds to wait before a hello synchronization fails and closes the connection (30ms to 60000ms, default: 1000ms) + #connectTimeoutMs: 3000 + + # Sets the control channel write timeout. A write timeout will close the control channel, so the router will reconnect + #writeTimeout: 15s + + # A listener address which will be sent to connecting routers in order to change their configured controller + # address. If defined, routers will update address configuration to immediately use the new address for future + # connections. The value of newListener must be resolvable both via DNS and validate via certificates + #newListener: tls:localhost:6262 + +#events: +# jsonLogger: +# subscriptions: +# - type: fabric.routers +# - type: fabric.terminators +# - type: metrics +# sourceFilter: .* +# metricFilter: .*egress.*m1_rate* +# - type: fabric.circuits +# include: +# - created +# - type: edge.sessions +# include: +# - created +# - type: edge.apiSessions +# - type: fabric.usage +# - type: services +# - type: fabric.usage +# - type: edge.entityCounts +# interval: 5s +# handler: +# type: file +# format: json +# path: /tmp/ziti-events.log + +healthChecks: + boltCheck: + # How often to try entering a bolt read tx. Defaults to 30 seconds + interval: 30s + # When to timeout the check. Defaults to 15 seconds + timeout: 15s + # How long to wait before starting the check. Defaults to 15 seconds + initialDelay: 15s + +# By having an 'edge' section defined, the ziti-controller will attempt to parse the edge configuration. Removing this +# section, commenting out, or altering the name of the section will cause the edge to not run. +edge: + # This section represents the configuration of the Edge API that is served over HTTPS + api: + #(optional, default 90s) Alters how frequently heartbeat and last activity values are persisted + # activityUpdateInterval: 90s + #(optional, default 250) The number of API Sessions updated for last activity per transaction + # activityUpdateBatchSize: 250 + # sessionTimeout - optional, default 10m + # The number of minutes before an Edge API session will timeout. Timeouts are reset by + # API requests and connections that are maintained to Edge Routers + sessionTimeout: 30m + # address - required + # The default address (host:port) to use for enrollment for the Client API. This value must match one of the addresses + # defined in a bind point's address field for the `edge-client` API in the web section. + address: {{.Host.PublicIp}}:1280 + # enrollment - required + # A section containing settings pertaining to enrollment. + enrollment: + # signingCert - required + # A Ziti Identity configuration section that specifically makes use of the cert and key fields to define + # a signing certificate from the PKI that the Ziti environment is using to sign certificates. The signingCert.cert + # will be added to the /.well-known CA store that is used to bootstrap trust with the Ziti Controller. + signingCert: + cert: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/pki/{{ .Component.PublicIdentity }}/certs/{{ .Component.PublicIdentity }}.cert + key: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/pki/{{ .Component.PublicIdentity }}/keys/{{ .Component.PublicIdentity }}.key + + # edgeIdentity - optional + # A section for identity enrollment specific settings + edgeIdentity: + # duration - optional, default 5m + # The length of time that a Ziti Edge Identity enrollment should remain valid. After + # this duration, the enrollment will expire and not longer be usable. + duration: 5m + # edgeRouter - Optional + # A section for edge router enrollment specific settings. + edgeRouter: + # duration - optional, default 5m + # The length of time that a Ziti Edge Router enrollment should remain valid. After + # this duration, the enrollment will expire and not longer be usable. + duration: 5m + + +# web - optional +# Defines webListeners that will be hosted by the controller. Each webListener can host many APIs and be bound to many +# bind points. +web: + # name - required + # Provides a name for this listener, used for logging output. Not required to be unique, but is highly suggested. + - name: all-apis-localhost + # bindPoints - required + # One or more bind points are required. A bind point specifies an interface (interface:port string) that defines + # where on the host machine the webListener will listen and the address (host:port) that should be used to + # publicly address the webListener(i.e. mydomain.com, localhost, 127.0.0.1). This public address may be used for + # incoming address resolution as well as used in responses in the API. + bindPoints: + #interface - required + # A host:port string on which network interface to listen on. 0.0.0.0 will listen on all interfaces + - interface: 0.0.0.0:1280 + + # address - required + # The public address that external incoming requests will be able to resolve. Used in request processing and + # response content that requires full host:port/path addresses. + address: {{.Host.PublicIp}}:1280 + + # newAddress - optional + # A host:port string which will be sent out as an HTTP header "ziti-new-address" if specified. If the header + # is present, clients should update location configuration to immediately use the new address for future + # connections. The value of newAddress must be resolvable both via DNS and validate via certificates + #newAddress: localhost:1280 + # identity - optional + # Allows the webListener to have a specific identity instead of defaulting to the root `identity` section. + # identity: + # cert: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/certs/ctrl-client.cert.pem + # server_cert: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/certs/ctrl-server.cert.pem + # key: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/private/ctrl.key.pem + # ca: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/certs/ca-chain.cert.pem + # options - optional + # Allows the specification of webListener level options - mainly dealing with HTTP/TLS settings. These options are + # used for all http servers started by the current webListener. + options: + # idleTimeout - optional, default 5000ms + # The maximum amount of idle time in milliseconds allowed for pipelined HTTP requests. Setting this too high + # can cause resources on the host to be consumed as clients remain connected and idle. Lowering this value + # will cause clients to reconnect on subsequent HTTPs requests. + idleTimeout: 5000ms #http timeouts, new + + # readTimeout - optional, default 5000ms + # The maximum amount of time in milliseconds http servers will wait to read the first incoming requests. A higher + # value risks consuming resources on the host with clients that are acting bad faith or suffering from high latency + # or packet loss. A lower value can risk losing connections to high latency/packet loss clients. + + readTimeout: 5000ms + # writeTimeout - optional, default 10000ms + # The total maximum time in milliseconds that the http server will wait for a single requests to be received and + # responded too. A higher value can allow long running requests to consume resources on the host. A lower value + # can risk ending requests before the server has a chance to respond. + + writeTimeout: 100000ms + # minTLSVersion - optional, default TSL1.2 + # The minimum version of TSL to support + + minTLSVersion: TLS1.2 + # maxTLSVersion - optional, default TSL1.3 + # The maximum version of TSL to support + + maxTLSVersion: TLS1.3 + # apis - required + # Allows one or more APIs to be bound to this webListener + apis: + # binding - required + # Specifies an API to bind to this webListener. Built-in APIs are + # - health-checks + # - edge-management + # - edge-client + # - fabric-management + - binding: health-checks + options: {} + - binding: fabric + - binding: edge-management + # options - variable optional/required + # This section is used to define values that are specified by the API they are associated with. + # These settings are per API. The example below is for the `edge-api` and contains both optional values and + # required values. + options: {} + - binding: edge-client + options: {} diff --git a/network-tests/simple-transfer/configs/metricbeat.yml b/network-tests/ha/configs/metricbeat.yml similarity index 100% rename from network-tests/simple-transfer/configs/metricbeat.yml rename to network-tests/ha/configs/metricbeat.yml diff --git a/network-tests/ha/configs/router.yml.tmpl b/network-tests/ha/configs/router.yml.tmpl new file mode 100644 index 000000000..4cb9afca5 --- /dev/null +++ b/network-tests/ha/configs/router.yml.tmpl @@ -0,0 +1,70 @@ +{{$ssh_username := .Model.MustVariable "credentials.ssh.username"}} +{{$identity := .Component.PublicIdentity}} +{{$router_ip := .Host.PublicIp}} + +v: 3 + +enableDebugOps: true + +identity: + cert: /home/{{$ssh_username}}/fablab/cfg/{{$identity}}-client.cert + server_cert: /home/{{$ssh_username}}/fablab/cfg/{{$identity}}-server.cert + key: /home/{{$ssh_username}}/fablab/cfg/{{$identity}}.key + ca: /home/{{$ssh_username}}/fablab/cfg/{{$identity}}-server.chain.pem + +ctrl: + endpoints: {{ range $host := .Model.MustSelectHosts "component.ctrl" 1 }} + - tls:{{ $host.PublicIp }}:6262{{end}} + +healthChecks: + ctrlPingCheck: + # How often to ping the controller over the control channel. Defaults to 30 seconds + interval: 30s + # When to timeout the ping. Defaults to 15 seconds + timeout: 15s + # How long to wait before pinging the controller. Defaults to 15 seconds + initialDelay: 15s + +metrics: + reportInterval: 15s + messageQueueSize: 10 + +link: + listeners: + - binding: transport + bind: tls:0.0.0.0:6000 + advertise: tls:{{$router_ip}}:6000 + dialers: + - binding: transport + +listeners: +{{if .Component.HasTag "tunneler"}} + - binding: tunnel + options: + mode: tproxy +{{end}} + - binding: edge + address: tls:0.0.0.0:6262 + options: + # (required) The public hostname and port combination that Ziti SDKs should connect on. Previously this was in the chanIngress section. + advertise: {{ .Host.PublicIp }}:6262 + +# By having an 'edge' section defined, the ziti-router will attempt to parse the edge configuration. Removing this +# section, commenting out, or altering the name of the section will cause the router to no longer operate as an Edge +# Router. +edge: + # (required) Information used to generate the initial registration CSR. For documentation on these fields please + # refer to the openssl documentation. These values MUST be supplied and have no defaults. + csr: + country: US + province: NC + locality: Charlotte + organization: NetFoundry + organizationalUnit: Ziti + + # (required) SANs that this Gateways certs should contain. At least one IP or DNS SAN should be defined that matches + # the edge listeners "advertise" value from the "listeners" section. + sans: + ip: + - {{ .Host.PublicIp }} + diff --git a/network-tests/simple-transfer/configs/ziti.hcl b/network-tests/ha/configs/ziti.hcl similarity index 100% rename from network-tests/simple-transfer/configs/ziti.hcl rename to network-tests/ha/configs/ziti.hcl diff --git a/network-tests/ha/main.go b/network-tests/ha/main.go new file mode 100644 index 000000000..3b78e4c8a --- /dev/null +++ b/network-tests/ha/main.go @@ -0,0 +1,298 @@ +/* + (c) Copyright NetFoundry Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package main + +import ( + "embed" + "fmt" + "github.com/openziti/fablab" + "github.com/openziti/fablab/kernel/lib/actions/component" + "github.com/openziti/fablab/kernel/lib/binding" + "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/aws_ssh_key" + semaphore0 "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/semaphore" + terraform_0 "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/terraform" + "github.com/openziti/fablab/kernel/lib/runlevel/1_configuration/config" + "github.com/openziti/fablab/kernel/lib/runlevel/2_kitting/devkit" + distribution "github.com/openziti/fablab/kernel/lib/runlevel/3_distribution" + "github.com/openziti/fablab/kernel/lib/runlevel/3_distribution/rsync" + aws_ssh_key2 "github.com/openziti/fablab/kernel/lib/runlevel/6_disposal/aws_ssh_key" + "github.com/openziti/fablab/kernel/lib/runlevel/6_disposal/terraform" + "github.com/openziti/fablab/kernel/model" + "github.com/openziti/fablab/resources" + "github.com/openziti/ziti/network-tests/ha/actions" + "github.com/openziti/ziti/network-tests/test_resources" + "github.com/openziti/zitilab" + "github.com/openziti/zitilab/actions/edge" + zitilib_runlevel_1_configuration "github.com/openziti/zitilab/runlevel/1_configuration" + "github.com/sirupsen/logrus" + "os" + "time" +) + +//go:embed configs +var configResource embed.FS + +func getConfigData(filePath string) []byte { + data, err := configResource.ReadFile(fmt.Sprintf("configs/%s", filePath)) + if err != nil { + logrus.Errorf("Unable to read config data from %s: [%s]", filePath, err) + } + return data +} + +var m = &model.Model{ + Id: "ha", + Scope: model.Scope{ + Defaults: model.Variables{ + "environment": "ha-smoketest", + "credentials": model.Variables{ + "ssh": model.Variables{ + "username": "ubuntu", + }, + "edge": model.Variables{ + "username": "admin", + "password": "admin", + }, + }, + }, + }, + + Resources: model.Resources{ + resources.Configs: resources.SubFolder(configResource, "configs"), + resources.Terraform: test_resources.TerraformResources(), + }, + + Regions: model.Regions{ + "us-east-1": { + Region: "us-east-1", + Site: "us-east-1a", + Hosts: model.Hosts{ + "ctrl1": { + InstanceType: "t3.micro", + Components: model.Components{ + "ctrl1": { + Scope: model.Scope{Tags: model.Tags{"ctrl", "spiffe:controller"}}, + BinaryName: "ziti controller", + ConfigSrc: "ctrl.yml.tmpl", + ConfigName: "ctrl1.yml", + PublicIdentity: "ctrl1", + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + "ctrl2": { + InstanceType: "t3.micro", + Components: model.Components{ + "ctrl2": { + Scope: model.Scope{Tags: model.Tags{"ctrl", "spiffe:controller"}}, + BinaryName: "ziti controller", + ConfigSrc: "ctrl.yml.tmpl", + ConfigName: "ctrl2.yml", + PublicIdentity: "ctrl2", + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + + "router-east": { + InstanceType: "t2.micro", + Components: model.Components{ + "router-east": { + Scope: model.Scope{Tags: model.Tags{"edge-router", "terminator"}}, + BinaryName: "ziti router", + ConfigSrc: "router.yml.tmpl", + ConfigName: "router-east.yml", + PublicIdentity: "router-east", + }, + "echo-server": { + Scope: model.Scope{Tags: model.Tags{"sdk-app", "service"}}, + BinaryName: "echo-server", + PublicIdentity: "echo-server", + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + }, + }, + "us-west-2": { + Region: "us-west-2", + Site: "us-west-2b", + Hosts: model.Hosts{ + "ctrl3": { + InstanceType: "t3.micro", + Components: model.Components{ + "ctrl3": { + Scope: model.Scope{Tags: model.Tags{"ctrl", "spiffe:controller"}}, + BinaryName: "ziti controller", + ConfigSrc: "ctrl.yml.tmpl", + ConfigName: "ctrl3.yml", + PublicIdentity: "ctrl3", + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + + "router-west": { + Scope: model.Scope{Tags: model.Tags{}}, + InstanceType: "t2.micro", + Components: model.Components{ + "router-west": { + Scope: model.Scope{Tags: model.Tags{"edge-router", "terminator"}}, + BinaryName: "ziti router", + ConfigSrc: "router.yml.tmpl", + ConfigName: "router-west.yml", + PublicIdentity: "router-west", + }, + "echo-client": { + Scope: model.Scope{Tags: model.Tags{"sdk-app", "client"}}, + BinaryName: "echo-client", + PublicIdentity: "echo-client", + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + }, + }, + }, + + Actions: model.ActionBinders{ + "bootstrap": actions.NewBootstrapAction(), + "start": actions.NewStartAction(actions.MetricbeatConfig{ + ConfigPath: "metricbeat", + DataPath: "metricbeat/data", + LogPath: "metricbeat/logs", + }, + actions.ConsulConfig{ + ServerAddr: os.Getenv("CONSUL_ENDPOINT"), + ConfigDir: "consul", + DataPath: "consul/data", + LogPath: "consul/log.out", + }), + "stop": model.Bind(component.StopInParallel("*", 15)), + "login": model.Bind(edge.Login("#ctrl1")), + }, + + Infrastructure: model.InfrastructureStages{ + aws_ssh_key.Express(), + terraform_0.Express(), + semaphore0.Ready(time.Minute), + }, + + Configuration: model.ConfigurationStages{ + zitilib_runlevel_1_configuration.IfPkiNeedsRefresh( + zitilib_runlevel_1_configuration.Fabric("simple-transfer.test", ".ctrl"), + ), + config.Component(), + devkit.DevKitF(zitilab.ZitiRoot, []string{"ziti", "ziti-echo"}), + }, + + Distribution: model.DistributionStages{ + distribution.DistributeSshKey("*"), + distribution.Locations("*", "logs"), + distribution.DistributeDataWithReplaceCallbacks( + "*", + string(getConfigData("metricbeat.yml")), + "metricbeat/metricbeat.yml", + os.FileMode(0644), + map[string]func(*model.Host) string{ + "${host}": func(h *model.Host) string { + return os.Getenv("ELASTIC_ENDPOINT") + }, + "${user}": func(h *model.Host) string { + return os.Getenv("ELASTIC_USERNAME") + }, + "${password}": func(h *model.Host) string { + return os.Getenv("ELASTIC_PASSWORD") + }, + "${build_number}": func(h *model.Host) string { + return os.Getenv("BUILD_NUMBER") + }, + "${ziti_version}": func(h *model.Host) string { + return h.MustStringVariable("ziti_version") + }, + }, + ), + + distribution.DistributeDataWithReplaceCallbacks( + "*", + string(getConfigData("consul.hcl")), + "consul/consul.hcl", + os.FileMode(0644), + map[string]func(*model.Host) string{ + "${public_ip}": func(h *model.Host) string { + return h.PublicIp + }, + "${encryption_key}": func(h *model.Host) string { + return os.Getenv("CONSUL_ENCRYPTION_KEY") + }, + "${build_number}": func(h *model.Host) string { + return os.Getenv("BUILD_NUMBER") + }, + "${ziti_version}": func(h *model.Host) string { + return h.MustStringVariable("ziti_version") + }, + }, + ), + distribution.DistributeDataWithReplaceCallbacks( + "#ctrl", + string(getConfigData("ziti.hcl")), + "consul/ziti.hcl", + os.FileMode(0644), + map[string]func(*model.Host) string{ + "${build_number}": func(h *model.Host) string { + return os.Getenv("BUILD_NUMBER") + }, + "${ziti_version}": func(h *model.Host) string { + return h.MustStringVariable("ziti_version") + }, + }), + distribution.DistributeData( + "*", + []byte(os.Getenv("CONSUL_AGENT_CERT")), + "consul/consul-agent-ca.pem"), + rsync.RsyncStaged(), + }, + + Disposal: model.DisposalStages{ + terraform.Dispose(), + aws_ssh_key2.Dispose(), + }, +} + +func main() { + m.AddActivationActions("stop", "bootstrap", "start") + + model.AddBootstrapExtension( + zitilab.BootstrapWithFallbacks( + &zitilab.BootstrapFromEnv{}, + )) + model.AddBootstrapExtension(binding.AwsCredentialsLoader) + model.AddBootstrapExtension(aws_ssh_key.KeyManager) + + fablab.InitModel(m) + fablab.Run() +} diff --git a/network-tests/router-test/configs/ctrl.yml b/network-tests/router-test/configs/ctrl.yml new file mode 100644 index 000000000..093df1c1f --- /dev/null +++ b/network-tests/router-test/configs/ctrl.yml @@ -0,0 +1,194 @@ +v: 3 + +db: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/ctrl.db + +identity: + cert: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/pki/ctrl/certs/{{ .Component.PublicIdentity }}-server.cert + key: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/pki/ctrl/keys/{{ .Component.PublicIdentity }}-server.key + ca: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/pki/ctrl/certs/{{ .Component.PublicIdentity }}-server.chain.pem + +# the endpoint that routers will connect to the controller over. +ctrl: + listener: tls:0.0.0.0:6262 + options: + advertiseAddress: tls:{{.Host.PublicIp}}:6262 + # (optional) settings + # set the maximum number of connect requests that are buffered and waiting to be acknowledged (1 to 5000, default 1000) + #maxQueuedConnects: 50 + + # the maximum number of connects that have begun hello synchronization (1 to 1000, default 16) + #maxOutstandingConnects: 100 + + # the number of milliseconds to wait before a hello synchronization fails and closes the connection (30ms to 60000ms, default: 1000ms) + #connectTimeoutMs: 3000 + + # Sets the control channel write timeout. A write timeout will close the control channel, so the router will reconnect + #writeTimeout: 15s + + # A listener address which will be sent to connecting routers in order to change their configured controller + # address. If defined, routers will update address configuration to immediately use the new address for future + # connections. The value of newListener must be resolvable both via DNS and validate via certificates + #newListener: tls:localhost:6262 + +#events: +# jsonLogger: +# subscriptions: +# - type: fabric.routers +# - type: fabric.terminators +# - type: metrics +# sourceFilter: .* +# metricFilter: .*egress.*m1_rate* +# - type: fabric.circuits +# include: +# - created +# - type: edge.sessions +# include: +# - created +# - type: edge.apiSessions +# - type: fabric.usage +# - type: services +# - type: fabric.usage +# - type: edge.entityCounts +# interval: 5s +# handler: +# type: file +# format: json +# path: /tmp/ziti-events.log + +healthChecks: + boltCheck: + # How often to try entering a bolt read tx. Defaults to 30 seconds + interval: 30s + # When to timeout the check. Defaults to 15 seconds + timeout: 15s + # How long to wait before starting the check. Defaults to 15 seconds + initialDelay: 15s + +# By having an 'edge' section defined, the ziti-controller will attempt to parse the edge configuration. Removing this +# section, commenting out, or altering the name of the section will cause the edge to not run. +edge: + # This section represents the configuration of the Edge API that is served over HTTPS + api: + #(optional, default 90s) Alters how frequently heartbeat and last activity values are persisted + # activityUpdateInterval: 90s + #(optional, default 250) The number of API Sessions updated for last activity per transaction + # activityUpdateBatchSize: 250 + # sessionTimeout - optional, default 10m + # The number of minutes before an Edge API session will timeout. Timeouts are reset by + # API requests and connections that are maintained to Edge Routers + sessionTimeout: 30m + # address - required + # The default address (host:port) to use for enrollment for the Client API. This value must match one of the addresses + # defined in a bind point's address field for the `edge-client` API in the web section. + address: {{.Host.PublicIp}}:1280 + # enrollment - required + # A section containing settings pertaining to enrollment. + enrollment: + # signingCert - required + # A Ziti Identity configuration section that specifically makes use of the cert and key fields to define + # a signing certificate from the PKI that the Ziti environment is using to sign certificates. The signingCert.cert + # will be added to the /.well-known CA store that is used to bootstrap trust with the Ziti Controller. + signingCert: + cert: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/pki/ctrl/certs/ctrl.cert + key: /home/{{ .Model.MustVariable "credentials.ssh.username" }}/fablab/pki/ctrl/keys/ctrl.key + + # edgeIdentity - optional + # A section for identity enrollment specific settings + edgeIdentity: + # duration - optional, default 5m + # The length of time that a Ziti Edge Identity enrollment should remain valid. After + # this duration, the enrollment will expire and not longer be usable. + duration: 5m + # edgeRouter - Optional + # A section for edge router enrollment specific settings. + edgeRouter: + # duration - optional, default 5m + # The length of time that a Ziti Edge Router enrollment should remain valid. After + # this duration, the enrollment will expire and not longer be usable. + duration: 5m + + +# web - optional +# Defines webListeners that will be hosted by the controller. Each webListener can host many APIs and be bound to many +# bind points. +web: + # name - required + # Provides a name for this listener, used for logging output. Not required to be unique, but is highly suggested. + - name: all-apis-localhost + # bindPoints - required + # One or more bind points are required. A bind point specifies an interface (interface:port string) that defines + # where on the host machine the webListener will listen and the address (host:port) that should be used to + # publicly address the webListener(i.e. mydomain.com, localhost, 127.0.0.1). This public address may be used for + # incoming address resolution as well as used in responses in the API. + bindPoints: + #interface - required + # A host:port string on which network interface to listen on. 0.0.0.0 will listen on all interfaces + - interface: 0.0.0.0:1280 + + # address - required + # The public address that external incoming requests will be able to resolve. Used in request processing and + # response content that requires full host:port/path addresses. + address: {{.Host.PublicIp}}:1280 + + # newAddress - optional + # A host:port string which will be sent out as an HTTP header "ziti-new-address" if specified. If the header + # is present, clients should update location configuration to immediately use the new address for future + # connections. The value of newAddress must be resolvable both via DNS and validate via certificates + #newAddress: localhost:1280 + # identity - optional + # Allows the webListener to have a specific identity instead of defaulting to the root `identity` section. + # identity: + # cert: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/certs/ctrl-client.cert.pem + # server_cert: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/certs/ctrl-server.cert.pem + # key: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/private/ctrl.key.pem + # ca: ${ZITI_SOURCE}/ziti/etc/ca/intermediate/certs/ca-chain.cert.pem + # options - optional + # Allows the specification of webListener level options - mainly dealing with HTTP/TLS settings. These options are + # used for all http servers started by the current webListener. + options: + # idleTimeout - optional, default 5000ms + # The maximum amount of idle time in milliseconds allowed for pipelined HTTP requests. Setting this too high + # can cause resources on the host to be consumed as clients remain connected and idle. Lowering this value + # will cause clients to reconnect on subsequent HTTPs requests. + idleTimeout: 5000ms #http timeouts, new + + # readTimeout - optional, default 5000ms + # The maximum amount of time in milliseconds http servers will wait to read the first incoming requests. A higher + # value risks consuming resources on the host with clients that are acting bad faith or suffering from high latency + # or packet loss. A lower value can risk losing connections to high latency/packet loss clients. + + readTimeout: 5000ms + # writeTimeout - optional, default 10000ms + # The total maximum time in milliseconds that the http server will wait for a single requests to be received and + # responded too. A higher value can allow long running requests to consume resources on the host. A lower value + # can risk ending requests before the server has a chance to respond. + + writeTimeout: 100000ms + # minTLSVersion - optional, default TSL1.2 + # The minimum version of TSL to support + + minTLSVersion: TLS1.2 + # maxTLSVersion - optional, default TSL1.3 + # The maximum version of TSL to support + + maxTLSVersion: TLS1.3 + # apis - required + # Allows one or more APIs to be bound to this webListener + apis: + # binding - required + # Specifies an API to bind to this webListener. Built-in APIs are + # - health-checks + # - edge-management + # - edge-client + # - fabric-management + - binding: health-checks + options: {} + - binding: fabric + - binding: edge-management + # options - variable optional/required + # This section is used to define values that are specified by the API they are associated with. + # These settings are per API. The example below is for the `edge-api` and contains both optional values and + # required values. + options: {} + - binding: edge-client + options: {} diff --git a/network-tests/router-test/configs/router.yml b/network-tests/router-test/configs/router.yml new file mode 100644 index 000000000..a2a203737 --- /dev/null +++ b/network-tests/router-test/configs/router.yml @@ -0,0 +1,70 @@ + {{$ssh_username := .Model.MustVariable "credentials.ssh.username"}} + {{$identity := .Component.PublicIdentity}} + {{$ctrl_ip := publicIp "component#ctrl"}} + {{$router_ip := .Host.PublicIp}} + + v: 3 + + enableDebugOps: true + + identity: + cert: /home/{{$ssh_username}}/fablab/cfg/{{$identity}}-client.cert + server_cert: /home/{{$ssh_username}}/fablab/cfg/{{$identity}}-server.cert + key: /home/{{$ssh_username}}/fablab/cfg/{{$identity}}.key + ca: /home/{{$ssh_username}}/fablab/cfg/{{$identity}}-server.chain.pem + + ctrl: + endpoint: tls:{{$ctrl_ip}}:6262 + + healthChecks: + ctrlPingCheck: + # How often to ping the controller over the control channel. Defaults to 30 seconds + interval: 30s + # When to timeout the ping. Defaults to 15 seconds + timeout: 15s + # How long to wait before pinging the controller. Defaults to 15 seconds + initialDelay: 15s + + metrics: + reportInterval: 15s + messageQueueSize: 10 + + link: + listeners: + - binding: transport + bind: tls:0.0.0.0:6000 + advertise: tls:{{$router_ip}}:6000 + dialers: + - binding: transport + + listeners: + {{if .Component.HasTag "tunneler"}} + - binding: tunnel + options: + mode: tproxy + {{end}} + - binding: edge + address: tls:0.0.0.0:6262 + options: + # (required) The public hostname and port combination that Ziti SDKs should connect on. Previously this was in the chanIngress section. + advertise: {{.Host.PublicIp}}:6262 + + # By having an 'edge' section defined, the ziti-router will attempt to parse the edge configuration. Removing this + # section, commenting out, or altering the name of the section will cause the router to no longer operate as an Edge + # Router. + edge: + # (required) Information used to generate the initial registration CSR. For documentation on these fields please + # refer to the openssl documentation. These values MUST be supplied and have no defaults. + csr: + country: US + province: NC + locality: Charlotte + organization: NetFoundry + organizationalUnit: Ziti + + # (required) SANs that this Gateways certs should contain. At least one IP or DNS SAN should be defined that matches + # the edge listeners "advertise" value from the "listeners" section. + sans: + ip: + - {{.Host.PublicIp}} + diff --git a/network-tests/router-test/main.go b/network-tests/router-test/main.go new file mode 100644 index 000000000..1e73bd7bb --- /dev/null +++ b/network-tests/router-test/main.go @@ -0,0 +1,197 @@ +package main + +import ( + "embed" + _ "embed" + "github.com/michaelquigley/pfxlog" + "github.com/openziti/edge/controller/persistence" + "github.com/openziti/fablab" + "github.com/openziti/fablab/kernel/lib/actions" + "github.com/openziti/fablab/kernel/lib/actions/component" + "github.com/openziti/fablab/kernel/lib/actions/host" + "github.com/openziti/fablab/kernel/lib/actions/semaphore" + "github.com/openziti/fablab/kernel/lib/binding" + "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/aws_ssh_key" + "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/semaphore" + "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/terraform" + "github.com/openziti/fablab/kernel/lib/runlevel/1_configuration/config" + "github.com/openziti/fablab/kernel/lib/runlevel/2_kitting/devkit" + distribution "github.com/openziti/fablab/kernel/lib/runlevel/3_distribution" + "github.com/openziti/fablab/kernel/lib/runlevel/3_distribution/rsync" + aws_ssh_key2 "github.com/openziti/fablab/kernel/lib/runlevel/6_disposal/aws_ssh_key" + "github.com/openziti/fablab/kernel/lib/runlevel/6_disposal/terraform" + "github.com/openziti/fablab/kernel/model" + "github.com/openziti/fablab/resources" + "github.com/openziti/ziti/network-tests/test_resources" + "github.com/openziti/zitilab" + "github.com/openziti/zitilab/actions/edge" + "github.com/openziti/zitilab/models" + zitilib_runlevel_1_configuration "github.com/openziti/zitilab/runlevel/1_configuration" + "os" + "path" + "strings" + "time" +) + +func getDbFile() string { + dbFile := os.Getenv("ZITI_DB") + if dbFile == "" { + pfxlog.Logger().Fatal("required env var ZITI_DB not set") + } + return dbFile +} + +//go:embed configs +var configResource embed.FS + +type scaleStrategy struct{} + +func (self scaleStrategy) IsScaled(entity model.Entity) bool { + return entity.GetType() == model.EntityTypeHost && entity.GetScope().HasTag("scaled") +} + +func (self scaleStrategy) GetEntityCount(entity model.Entity) uint32 { + if entity.GetType() == model.EntityTypeHost && entity.GetScope().HasTag("scaled") { + return 4 + } + return 1 +} + +type dbStrategy struct{} + +func (d dbStrategy) GetDbFile() string { + return getDbFile() +} + +func (d dbStrategy) GetSite(router *persistence.EdgeRouter) (string, bool) { + for _, attr := range router.RoleAttributes { + if strings.Contains(attr, "Hosted") { + return "us-west-2b", true + } + } + return "us-west-1c", true +} + +func (d dbStrategy) PostProcess(router *persistence.EdgeRouter, c *model.Component) { + c.PublicIdentity = router.Id + if router.IsTunnelerEnabled { + c.Scope.Tags = append(c.Scope.Tags, "tunneler") + c.RunWithSudo = true + } + c.Scope.Tags = append(c.Scope.Tags, "edge-router") + c.Scope.Tags = append(c.Scope.Tags, "pre-created") + c.Host.InstanceType = "c5.large" +} + +var m = &model.Model{ + Id: "router-test", + Scope: model.Scope{ + Defaults: model.Variables{ + "environment": "router-test", + "credentials": model.Variables{ + "ssh": model.Variables{ + "username": "ubuntu", + }, + "edge": model.Variables{ + "username": "admin", + "password": "admin", + }, + }, + "metrics": model.Variables{ + "influxdb": model.Variables{ + "url": "http://localhost:8086", + "db": "ziti", + }, + }, + }, + }, + StructureFactories: []model.Factory{ + model.NewScaleFactoryWithDefaultEntityFactory(scaleStrategy{}), + &models.ZitiDbBuilder{Strategy: dbStrategy{}}, + }, + Resources: model.Resources{ + resources.Configs: resources.SubFolder(configResource, "configs"), + resources.Binaries: os.DirFS(path.Join(os.Getenv("GOPATH"), "bin")), + resources.Terraform: test_resources.TerraformResources(), + }, + Regions: model.Regions{ + "us-east-1": { + Region: "us-east-1", + Site: "us-east-1a", + Hosts: model.Hosts{ + "ctrl": { + InstanceType: "c5.large", + Components: model.Components{ + "ctrl": { + Scope: model.Scope{Tags: model.Tags{"ctrl"}}, + BinaryName: "ziti controller", + ConfigSrc: "ctrl.yml", + ConfigName: "ctrl.yml", + PublicIdentity: "ctrl", + }, + }, + }, + }, + }, + }, + + Actions: model.ActionBinders{ + "bootstrap": model.ActionBinder(func(m *model.Model) model.Action { + workflow := actions.Workflow() + + workflow.AddAction(component.Stop("*")) + workflow.AddAction(host.GroupExec("*", 25, "rm -f logs/*")) + + workflow.AddAction(component.Start("#ctrl")) + workflow.AddAction(semaphore.Sleep(2 * time.Second)) + + workflow.AddAction(edge.Login("#ctrl")) + + workflow.AddAction(edge.ReEnrollEdgeRouters(".pre-created", 2)) + return workflow + }), + "stop": model.Bind(component.StopInParallel("*", 15)), + "clean": model.Bind(actions.Workflow( + component.StopInParallel("*", 15), + host.GroupExec("*", 25, "rm -f logs/*"), + )), + "login": model.Bind(edge.Login("#ctrl")), + }, + + Infrastructure: model.InfrastructureStages{ + aws_ssh_key.Express(), + terraform_0.Express(), + semaphore_0.Ready(90 * time.Second), + }, + + Configuration: model.ConfigurationStages{ + zitilib_runlevel_1_configuration.IfPkiNeedsRefresh( + zitilib_runlevel_1_configuration.Fabric("router.test", ".ctrl"), + ), + config.Component(), + devkit.DevKitF(zitilab.ZitiRoot, []string{"ziti"}), + }, + + Distribution: model.DistributionStages{ + distribution.DistributeSshKey("*"), + distribution.Locations("*", "logs"), + rsync.RsyncStaged(), + rsync.NewRsyncHost("#ctrl", getDbFile(), "/home/ubuntu/fablab/ctrl.db"), + }, + + Disposal: model.DisposalStages{ + terraform.Dispose(), + aws_ssh_key2.Dispose(), + }, +} + +func main() { + m.AddActivationActions("stop", "bootstrap") + + model.AddBootstrapExtension(&zitilab.BootstrapFromEnv{}) + model.AddBootstrapExtension(binding.AwsCredentialsLoader) + model.AddBootstrapExtension(aws_ssh_key.KeyManager) + + fablab.InitModel(m) + fablab.Run() +} diff --git a/network-tests/simple-transfer/main.go b/network-tests/simple-transfer/main.go index 416cde24a..5c17bd8cc 100644 --- a/network-tests/simple-transfer/main.go +++ b/network-tests/simple-transfer/main.go @@ -1,271 +1,28 @@ -package main - -import ( - "embed" - "fmt" - "github.com/openziti/fablab" - "github.com/openziti/fablab/kernel/lib/actions/component" - "github.com/openziti/fablab/kernel/lib/binding" - "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/aws_ssh_key" - semaphore0 "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/semaphore" - terraform_0 "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/terraform" - "github.com/openziti/fablab/kernel/lib/runlevel/1_configuration/config" - "github.com/openziti/fablab/kernel/lib/runlevel/2_kitting/devkit" - distribution "github.com/openziti/fablab/kernel/lib/runlevel/3_distribution" - "github.com/openziti/fablab/kernel/lib/runlevel/3_distribution/rsync" - aws_ssh_key2 "github.com/openziti/fablab/kernel/lib/runlevel/6_disposal/aws_ssh_key" - "github.com/openziti/fablab/kernel/lib/runlevel/6_disposal/terraform" - "github.com/openziti/fablab/kernel/model" - "github.com/openziti/fablab/resources" - "github.com/openziti/ziti/network-tests/simple-transfer/actions" - "github.com/openziti/ziti/network-tests/test_resources" - "github.com/openziti/zitilab" - "github.com/openziti/zitilab/actions/edge" - zitilib_runlevel_1_configuration "github.com/openziti/zitilab/runlevel/1_configuration" - "github.com/sirupsen/logrus" - "os" - "time" -) - -//go:embed configs -var configResource embed.FS - -type scaleStrategy struct{} - -func (s scaleStrategy) IsScaled(entity model.Entity) bool { - return entity.GetType() == model.EntityTypeHost && entity.GetScope().HasTag("scaled") -} - -func (s scaleStrategy) GetEntityCount(entity model.Entity) uint32 { - if entity.GetType() == model.EntityTypeHost && entity.GetScope().HasTag("scaled") { - return 4 - } - return 1 -} - -func getConfigData(filePath string) []byte { - data, err := configResource.ReadFile(fmt.Sprintf("configs/%s", filePath)) - if err != nil { - logrus.Errorf("Unable to read config data from %s: [%s]", filePath, err) - } - return data -} +/* + (c) Copyright NetFoundry Inc. -var m = &model.Model{ - Id: "simple-transfer", - Scope: model.Scope{ - Defaults: model.Variables{ - "environment": "simple-transfer-smoketest", - "credentials": model.Variables{ - "ssh": model.Variables{ - "username": "ubuntu", - }, - "edge": model.Variables{ - "username": "admin", - "password": "admin", - }, - }, - }, - }, + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at - StructureFactories: []model.Factory{ - model.NewScaleFactoryWithDefaultEntityFactory(scaleStrategy{}), - }, + https://www.apache.org/licenses/LICENSE-2.0 - Factories: []model.Factory{ - newStageFactory(), - }, + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ - Resources: model.Resources{ - resources.Configs: resources.SubFolder(configResource, "configs"), - resources.Terraform: test_resources.TerraformResources(), - }, - - Regions: model.Regions{ - "us-east-1": { - Region: "us-east-1", - Site: "us-east-1a", - Hosts: model.Hosts{ - "ctrl": { - InstanceType: "t2.micro", - Components: model.Components{ - "ctrl": { - Scope: model.Scope{Tags: model.Tags{"ctrl"}}, - BinaryName: "ziti controller", - ConfigSrc: "ctrl.yml", - ConfigName: "ctrl.yml", - PublicIdentity: "ctrl", - }, - "consul": { - BinaryName: "consul", - }, - }, - }, - "router-east": { - InstanceType: "t2.micro", - Components: model.Components{ - "router-east": { - Scope: model.Scope{Tags: model.Tags{"edge-router", "terminator"}}, - BinaryName: "ziti router", - ConfigSrc: "router.yml", - ConfigName: "router-east.yml", - PublicIdentity: "router-east", - }, - "echo-server": { - Scope: model.Scope{Tags: model.Tags{"sdk-app", "service"}}, - BinaryName: "echo-server", - PublicIdentity: "echo-server", - }, - "consul": { - BinaryName: "consul", - }, - }, - }, - }, - }, - "us-west-2": { - Region: "us-west-2", - Site: "us-west-2b", - Hosts: model.Hosts{ - "router-west": { - Scope: model.Scope{Tags: model.Tags{}}, - InstanceType: "t2.micro", - Components: model.Components{ - "router-west": { - Scope: model.Scope{Tags: model.Tags{"edge-router", "terminator"}}, - BinaryName: "ziti router", - ConfigSrc: "router.yml", - ConfigName: "router-west.yml", - PublicIdentity: "router-west", - }, - "echo-client": { - Scope: model.Scope{Tags: model.Tags{"sdk-app", "client"}}, - BinaryName: "echo-client", - PublicIdentity: "echo-client", - }, - "consul": { - BinaryName: "consul", - }, - }, - }, - }, - }, - }, - - Actions: model.ActionBinders{ - "bootstrap": actions.NewBootstrapAction(), - "start": actions.NewStartAction(actions.MetricbeatConfig{ - ConfigPath: "metricbeat", - DataPath: "metricbeat/data", - LogPath: "metricbeat/logs", - }, - actions.ConsulConfig{ - ServerAddr: os.Getenv("CONSUL_ENDPOINT"), - ConfigDir: "consul", - DataPath: "consul/data", - LogPath: "consul/log.out", - }), - "stop": model.Bind(component.StopInParallel("*", 15)), - "login": model.Bind(edge.Login("#ctrl")), - }, - - Infrastructure: model.InfrastructureStages{ - aws_ssh_key.Express(), - terraform_0.Express(), - semaphore0.Ready(time.Minute), - }, - - Configuration: model.ConfigurationStages{ - zitilib_runlevel_1_configuration.IfPkiNeedsRefresh( - zitilib_runlevel_1_configuration.Fabric("simple-transfer.test", "#ctrl"), - ), - config.Component(), - devkit.DevKitF(zitilab.ZitiRoot, []string{"ziti", "ziti-echo"}), - }, - - Distribution: model.DistributionStages{ - distribution.DistributeSshKey("*"), - distribution.Locations("*", "logs"), - distribution.DistributeDataWithReplaceCallbacks( - "*", - string(getConfigData("metricbeat.yml")), - "metricbeat/metricbeat.yml", - os.FileMode(0644), - map[string]func(*model.Host) string{ - "${host}": func(h *model.Host) string { - return os.Getenv("ELASTIC_ENDPOINT") - }, - "${user}": func(h *model.Host) string { - return os.Getenv("ELASTIC_USERNAME") - }, - "${password}": func(h *model.Host) string { - return os.Getenv("ELASTIC_PASSWORD") - }, - "${build_number}": func(h *model.Host) string { - return os.Getenv("BUILD_NUMBER") - }, - "${ziti_version}": func(h *model.Host) string { - return h.MustStringVariable("ziti_version") - }, - }, - ), - - distribution.DistributeDataWithReplaceCallbacks( - "*", - string(getConfigData("consul.hcl")), - "consul/consul.hcl", - os.FileMode(0644), - map[string]func(*model.Host) string{ - "${public_ip}": func(h *model.Host) string { - return h.PublicIp - }, - "${encryption_key}": func(h *model.Host) string { - return os.Getenv("CONSUL_ENCRYPTION_KEY") - }, - "${build_number}": func(h *model.Host) string { - return os.Getenv("BUILD_NUMBER") - }, - "${ziti_version}": func(h *model.Host) string { - return h.MustStringVariable("ziti_version") - }, - }, - ), - distribution.DistributeDataWithReplaceCallbacks( - "#ctrl", - string(getConfigData("ziti.hcl")), - "consul/ziti.hcl", - os.FileMode(0644), - map[string]func(*model.Host) string{ - "${build_number}": func(h *model.Host) string { - return os.Getenv("BUILD_NUMBER") - }, - "${ziti_version}": func(h *model.Host) string { - return h.MustStringVariable("ziti_version") - }, - }), - distribution.DistributeData( - "*", - []byte(os.Getenv("CONSUL_AGENT_CERT")), - "consul/consul-agent-ca.pem"), - rsync.RsyncStaged(), - }, +package main - Disposal: model.DisposalStages{ - terraform.Dispose(), - aws_ssh_key2.Dispose(), - }, -} +import ( + "github.com/openziti/fablab" + "github.com/openziti/ziti/network-tests/simple" +) func main() { - m.AddActivationActions("stop", "bootstrap", "start") - - model.AddBootstrapExtension( - zitilab.BootstrapWithFallbacks( - &zitilab.BootstrapFromEnv{}, - )) - model.AddBootstrapExtension(binding.AwsCredentialsLoader) - model.AddBootstrapExtension(aws_ssh_key.KeyManager) - - fablab.InitModel(m) + simple.InitBootstrapExtensions() + fablab.InitModel(simple.Model) fablab.Run() } diff --git a/network-tests/simple-transfer/stages.go b/network-tests/simple-transfer/stages.go deleted file mode 100644 index 724ca93cb..000000000 --- a/network-tests/simple-transfer/stages.go +++ /dev/null @@ -1,25 +0,0 @@ -package main - -import ( - "crypto/rand" - "net/url" - - "github.com/openziti/fablab/kernel/model" - runlevel_5_operation "github.com/openziti/ziti/network-tests/simple-transfer/stages/5_operation" -) - -type stageFactory struct{} - -func newStageFactory() model.Factory { - return &stageFactory{} -} - -func (sf *stageFactory) Build(m *model.Model) error { - //generate 10k random bytes - data := make([]byte, 10000) - rand.Read(data) - - m.AddOperatingStage(runlevel_5_operation.AssertEcho("#echo-client", url.QueryEscape(string(data)))) - - return nil -} diff --git a/network-tests/simple/actions/bootstrap.go b/network-tests/simple/actions/bootstrap.go new file mode 100644 index 000000000..8f8afd2f1 --- /dev/null +++ b/network-tests/simple/actions/bootstrap.go @@ -0,0 +1,115 @@ +/* + (c) Copyright NetFoundry Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package actions + +import ( + "time" + + "github.com/openziti/fablab/kernel/lib/actions" + "github.com/openziti/fablab/kernel/lib/actions/component" + "github.com/openziti/fablab/kernel/lib/actions/host" + "github.com/openziti/fablab/kernel/lib/actions/semaphore" + "github.com/openziti/fablab/kernel/model" + zitilib_actions "github.com/openziti/zitilab/actions" + "github.com/openziti/zitilab/actions/edge" + "github.com/openziti/zitilab/models" +) + +type bootstrapAction struct{} + +func NewBootstrapAction() model.ActionBinder { + action := &bootstrapAction{} + return action.bind +} + +func (a *bootstrapAction) bind(m *model.Model) model.Action { + workflow := actions.Workflow() + + workflow.AddAction(host.GroupExec("*", 25, "rm -f logs/*")) + workflow.AddAction(component.Stop("#ctrl")) + workflow.AddAction(edge.InitController("#ctrl")) + workflow.AddAction(component.Start("#ctrl")) + workflow.AddAction(semaphore.Sleep(2 * time.Second)) + + workflow.AddAction(edge.Login("#ctrl")) + + workflow.AddAction(component.StopInParallel(models.EdgeRouterTag, 25)) + workflow.AddAction(edge.InitEdgeRouters(models.EdgeRouterTag, 2)) + workflow.AddAction(edge.InitIdentities(models.SdkAppTag, 2)) + + workflow.AddAction(zitilib_actions.Edge("create", "service", "echo")) + + workflow.AddAction(zitilib_actions.Edge("create", "service-policy", "echo-servers", "Bind", "--service-roles", "@echo", "--identity-roles", "#service")) + workflow.AddAction(zitilib_actions.Edge("create", "service-policy", "echo-client", "Dial", "--service-roles", "@echo", "--identity-roles", "#client")) + + workflow.AddAction(zitilib_actions.Edge("create", "edge-router-policy", "echo-servers", "--edge-router-roles", "#host", "--identity-roles", "#service")) + workflow.AddAction(zitilib_actions.Edge("create", "edge-router-policy", "echo-clients", "--edge-router-roles", "#client", "--identity-roles", "#client")) + + workflow.AddAction(zitilib_actions.Edge("create", "service-edge-router-policy", "serp-all", "--service-roles", "#all", "--edge-router-roles", "#all")) + + workflow.AddAction(zitilib_actions.Edge("create", "config", "files-host", "host.v2", ` + { + "terminators" : [ + { "address" : "ziti-smoketest-files.s3-us-west-1.amazonaws.com", "port" : 443, "protocol" : "tcp" } + ] + }`)) + + workflow.AddAction(zitilib_actions.Edge("create", "config", "files-intercept-ert-unencrypted", "intercept.v1", ` + { + "addresses": ["ziti-files-ert-unencrypted.s3-us-west-1.amazonaws.ziti"], + "portRanges" : [ { "low": 443, "high": 443 } ], + "protocols": ["tcp"] + }`)) + + workflow.AddAction(zitilib_actions.Edge("create", "config", "files-intercept-ert", "intercept.v1", ` + { + "addresses": ["ziti-files-ert.s3-us-west-1.amazonaws.ziti"], + "portRanges" : [ { "low": 443, "high": 443 } ], + "protocols": ["tcp"] + }`)) + + workflow.AddAction(zitilib_actions.Edge("create", "config", "files-intercept-zet-unencrypted", "intercept.v1", ` + { + "addresses": ["ziti-files-zet-unencrypted.s3-us-west-1.amazonaws.ziti"], + "portRanges" : [ { "low": 443, "high": 443 } ], + "protocols": ["tcp"] + }`)) + + workflow.AddAction(zitilib_actions.Edge("create", "config", "files-intercept-zet", "intercept.v1", ` + { + "addresses": ["ziti-files-zet.s3-us-west-1.amazonaws.ziti"], + "portRanges" : [ { "low": 443, "high": 443 } ], + "protocols": ["tcp"] + }`)) + + workflow.AddAction(zitilib_actions.Edge("create", "service", "ert-files-unencrypted", "-c", "files-host,files-intercept-ert-unencrypted", "-e", "OFF", "-a", "ert")) + workflow.AddAction(zitilib_actions.Edge("create", "service", "ert-files", "-c", "files-host,files-intercept-ert", "-a", "ert")) + + workflow.AddAction(zitilib_actions.Edge("create", "service", "zet-files-unencrypted", "-c", "files-host,files-intercept-zet-unencrypted", "-e", "OFF", "-a", "zet")) + workflow.AddAction(zitilib_actions.Edge("create", "service", "zet-files", "-c", "files-host,files-intercept-zet", "-a", "zet")) + + workflow.AddAction(zitilib_actions.Edge("create", "service-policy", "ert-hosts", "Bind", "--service-roles", "#ert", "--identity-roles", "#ert-host")) + workflow.AddAction(zitilib_actions.Edge("create", "service-policy", "zet-hosts", "Bind", "--service-roles", "#zet", "--identity-roles", "#zet-host")) + workflow.AddAction(zitilib_actions.Edge("create", "service-policy", "client-tunnelers", "Dial", "--service-roles", "#all", "--identity-roles", "#client")) + + workflow.AddAction(zitilib_actions.Edge("create", "edge-router-policy", "client-routers", "--edge-router-roles", "#client", "--identity-roles", "#client")) + workflow.AddAction(zitilib_actions.Edge("create", "edge-router-policy", "host-routers", "--edge-router-roles", "#host", "--identity-roles", "#host")) + + workflow.AddAction(component.Stop(models.ControllerTag)) + + return workflow +} diff --git a/network-tests/simple/actions/start.go b/network-tests/simple/actions/start.go new file mode 100644 index 000000000..eb3aba464 --- /dev/null +++ b/network-tests/simple/actions/start.go @@ -0,0 +1,85 @@ +/* + (c) Copyright NetFoundry Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package actions + +import ( + "fmt" + "github.com/openziti/fablab/kernel/lib" + "time" + + "github.com/openziti/fablab/kernel/lib/actions" + "github.com/openziti/fablab/kernel/lib/actions/component" + "github.com/openziti/fablab/kernel/lib/actions/semaphore" + "github.com/openziti/fablab/kernel/model" + util_actions "github.com/openziti/ziti/network-tests/utils/actions" + zitilib_actions "github.com/openziti/zitilab/actions" + "github.com/openziti/zitilab/models" +) + +func NewStartAction(metricbeat MetricbeatConfig, consul ConsulConfig) model.ActionBinder { + action := &startAction{ + Metricbeat: metricbeat, + Consul: consul, + } + return action.bind +} + +func (a *startAction) bind(m *model.Model) model.Action { + workflow := actions.Workflow() + workflow.AddAction(component.Start("#ctrl")) + workflow.AddAction(semaphore.Sleep(2 * time.Second)) + workflow.AddAction(component.StartInParallel(models.EdgeRouterTag, 25)) + + workflow.AddAction(semaphore.Sleep(2 * time.Second)) + workflow.AddAction(zitilib_actions.StartMetricbeat("*", a.Metricbeat.ConfigPath, a.Metricbeat.DataPath, a.Metricbeat.LogPath)) + workflow.AddAction(zitilib_actions.StartConsul("*", a.Consul.ServerAddr, a.Consul.ConfigDir, a.Consul.DataPath, a.Consul.LogPath)) + workflow.AddAction(semaphore.Sleep(2 * time.Second)) + workflow.AddAction(util_actions.StartEchoServers("#echo-server")) + workflow.AddAction(semaphore.Sleep(2 * time.Second)) + + workflow.AddAction(model.ActionFunc(func(m *model.Model) error { + return m.ForEachComponent(".sdk-app", 5, func(c *model.Component) error { + factory := lib.NewSshConfigFactory(c.GetHost()) + + serviceCmd := fmt.Sprintf("nohup sudo /home/%s/fablab/bin/%s run -i /home/%s/fablab/cfg/%s > logs/%s.log 2>&1 &", + factory.User(), c.BinaryName, factory.User(), c.PublicIdentity+".json", c.PublicIdentity) + + _, err := lib.RemoteExec(factory, serviceCmd) + return err + }) + })) + + return workflow +} + +type startAction struct { + Metricbeat MetricbeatConfig + Consul ConsulConfig +} + +type MetricbeatConfig struct { + ConfigPath string + DataPath string + LogPath string +} + +type ConsulConfig struct { + ConfigDir string + ServerAddr string + DataPath string + LogPath string +} diff --git a/network-tests/simple/configs/consul.hcl b/network-tests/simple/configs/consul.hcl new file mode 100644 index 000000000..0f333bb3b --- /dev/null +++ b/network-tests/simple/configs/consul.hcl @@ -0,0 +1,24 @@ +datacenter = "ziti-build-metrics" +data_dir = "/opt/consul" +encrypt = "${encryption_key}" +advertise_addr="${public_ip}" + + +tls { + defaults { + verify_incoming = false + verify_outgoing = true + + ca_file="consul/consul-agent-ca.pem" + } +} + +auto_encrypt { + tls = true +} + +acl { + enabled = true + default_policy = "allow" + enable_token_persistence = true +} diff --git a/network-tests/simple-transfer/configs/ctrl.yml b/network-tests/simple/configs/ctrl.yml similarity index 100% rename from network-tests/simple-transfer/configs/ctrl.yml rename to network-tests/simple/configs/ctrl.yml diff --git a/network-tests/simple-transfer/configs/elasticsearch.repo b/network-tests/simple/configs/elasticsearch.repo similarity index 100% rename from network-tests/simple-transfer/configs/elasticsearch.repo rename to network-tests/simple/configs/elasticsearch.repo diff --git a/network-tests/simple/configs/metricbeat.yml b/network-tests/simple/configs/metricbeat.yml new file mode 100644 index 000000000..35c1cc9f6 --- /dev/null +++ b/network-tests/simple/configs/metricbeat.yml @@ -0,0 +1,53 @@ +fields_under_root: true +fields: + build_number: ${build_number} + ziti_version: ${ziti_version} + +processors: + - add_cloud_metadata: ~ + +metricbeat.modules: +- module: system + metricsets: + - cpu # CPU usage + - load # CPU load averages + - memory # Memory usage + - network # Network IO + enabled: true + period: 30s + cpu.metrics: ["percentages"] # The other available options are normalized_percentages and ticks. + core.metrics: ["percentages"] # The other available option is ticks. +#- module: docker +# metricsets: +# - "container" +# - "cpu" +# - "diskio" +# - "healthcheck" +# - "info" +# - "image" +# - "memory" +# - "network" +# hosts: ["unix:///var/run/docker.sock"] +# period: 30s +# enabled: true +# # If set to true, replace dots in labels with `_`. +# labels.dedot: true + + +output.elasticsearch: + # Array of hosts to connect to. + hosts: ["${host}"] + + # Optional protocol and basic auth credentials. + protocol: "https" + username: "${user}" + password: "${password}" + index: 'zt-%{[agent.version]}-%{+yyyy.MM.dd}' + +setup.template.enabled: true +setup.template.name: 'zt-%{[agent.version]}' +setup.template.pattern: 'zt-%{[agent.version]}-*' +setup.template.fields: "/etc/metricbeat/fields.yml" +setup.template.settings: + index.number_of_shards: 1 + index.codec: best_compression \ No newline at end of file diff --git a/network-tests/simple-transfer/configs/router.yml b/network-tests/simple/configs/router.yml similarity index 100% rename from network-tests/simple-transfer/configs/router.yml rename to network-tests/simple/configs/router.yml diff --git a/network-tests/simple/configs/ziti.hcl b/network-tests/simple/configs/ziti.hcl new file mode 100644 index 000000000..4af438cc0 --- /dev/null +++ b/network-tests/simple/configs/ziti.hcl @@ -0,0 +1,9 @@ +service { + name = "ziti" + id = "ziti" + port = 6262 + meta { + build_number= "${build_number}" + ziti_version= "${ziti_version}" + } +} \ No newline at end of file diff --git a/network-tests/simple/simple.go b/network-tests/simple/simple.go new file mode 100644 index 000000000..91a27688a --- /dev/null +++ b/network-tests/simple/simple.go @@ -0,0 +1,318 @@ +/* + (c) Copyright NetFoundry Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package simple + +import ( + "embed" + "fmt" + "github.com/openziti/fablab/kernel/lib/actions/component" + "github.com/openziti/fablab/kernel/lib/binding" + "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/aws_ssh_key" + semaphore0 "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/semaphore" + terraform_0 "github.com/openziti/fablab/kernel/lib/runlevel/0_infrastructure/terraform" + "github.com/openziti/fablab/kernel/lib/runlevel/1_configuration/config" + "github.com/openziti/fablab/kernel/lib/runlevel/2_kitting/devkit" + distribution "github.com/openziti/fablab/kernel/lib/runlevel/3_distribution" + "github.com/openziti/fablab/kernel/lib/runlevel/3_distribution/rsync" + aws_ssh_key2 "github.com/openziti/fablab/kernel/lib/runlevel/6_disposal/aws_ssh_key" + "github.com/openziti/fablab/kernel/lib/runlevel/6_disposal/terraform" + "github.com/openziti/fablab/kernel/model" + "github.com/openziti/fablab/resources" + actions2 "github.com/openziti/ziti/network-tests/simple/actions" + "github.com/openziti/ziti/network-tests/simple/stages/5_operation" + "github.com/openziti/ziti/network-tests/test_resources" + "github.com/openziti/zitilab" + "github.com/openziti/zitilab/actions/edge" + zitilib_runlevel_1_configuration "github.com/openziti/zitilab/runlevel/1_configuration" + "github.com/sirupsen/logrus" + "os" + "time" +) + +//go:embed configs +var configResource embed.FS + +func getConfigData(filePath string) []byte { + data, err := configResource.ReadFile(fmt.Sprintf("configs/%s", filePath)) + if err != nil { + logrus.Errorf("Unable to read config data from %s: [%s]", filePath, err) + } + return data +} + +var Model = &model.Model{ + Id: "simple-transfer", + Scope: model.Scope{ + Defaults: model.Variables{ + "environment": "simple-transfer-smoketest", + "credentials": model.Variables{ + "ssh": model.Variables{ + "username": "ubuntu", + }, + "edge": model.Variables{ + "username": "admin", + "password": "admin", + }, + }, + }, + }, + + Factories: []model.Factory{ + model.FactoryFunc(func(m *model.Model) error { + m.AddActivationActions("stop", "bootstrap", "start") + m.AddOperatingStage(runlevel_5_operation.AssertEcho("#echo-client")) + + return nil + }), + }, + + Resources: model.Resources{ + resources.Configs: resources.SubFolder(configResource, "configs"), + resources.Terraform: test_resources.TerraformResources(), + }, + + Regions: model.Regions{ + "us-east-1": { + Region: "us-east-1", + Site: "us-east-1a", + Hosts: model.Hosts{ + "ctrl": { + InstanceType: "t2.micro", + Components: model.Components{ + "ctrl": { + Scope: model.Scope{Tags: model.Tags{"ctrl"}}, + BinaryName: "ziti controller", + ConfigSrc: "ctrl.yml", + ConfigName: "ctrl.yml", + PublicIdentity: "ctrl", + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + "router-east-1": { + Scope: model.Scope{Tags: model.Tags{"ert-client"}}, + InstanceType: "t2.micro", + Components: model.Components{ + "router-east-1": { + Scope: model.Scope{Tags: model.Tags{"edge-router", "terminator", "tunneler", "client"}}, + BinaryName: "ziti router", + ConfigSrc: "router.yml", + ConfigName: "router-east-1.yml", + PublicIdentity: "router-east-1", + RunWithSudo: true, + }, + "echo-client": { + Scope: model.Scope{Tags: model.Tags{"sdk-app", "client"}}, + BinaryName: "echo-client", + PublicIdentity: "echo-client", + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + "router-east-2": { + InstanceType: "t2.micro", + Components: model.Components{ + "router-east-2": { + Scope: model.Scope{Tags: model.Tags{"edge-router", "initiator"}}, + BinaryName: "ziti router", + ConfigSrc: "router.yml", + ConfigName: "router-east-2.yml", + PublicIdentity: "router-east-2", + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + "ziti-edge-tunnel-client": { + Scope: model.Scope{Tags: model.Tags{"zet-client"}}, + InstanceType: "t2.micro", + Components: model.Components{ + "ziti-edge-tunnel-client": { + Scope: model.Scope{Tags: model.Tags{"sdk-app", "client"}}, + BinaryName: "ziti-edge-tunnel", + PublicIdentity: "ziti-edge-tunnel-client", + RunWithSudo: true, + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + }, + }, + "us-west-2": { + Region: "us-west-2", + Site: "us-west-2b", + Hosts: model.Hosts{ + "router-west": { + Scope: model.Scope{Tags: model.Tags{}}, + InstanceType: "t2.micro", + Components: model.Components{ + "router-west": { + Scope: model.Scope{Tags: model.Tags{"edge-router", "tunneler", "host", "ert-host"}}, + BinaryName: "ziti router", + ConfigSrc: "router.yml", + ConfigName: "router-west.yml", + PublicIdentity: "router-west", + RunWithSudo: true, + }, + "echo-server": { + Scope: model.Scope{Tags: model.Tags{"sdk-app", "service"}}, + BinaryName: "echo-server", + PublicIdentity: "echo-server", + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + "ziti-edge-tunnel-host": { + InstanceType: "t2.micro", + Components: model.Components{ + "ziti-edge-tunnel-host": { + Scope: model.Scope{Tags: model.Tags{"sdk-app", "host", "zet-host"}}, + BinaryName: "ziti-edge-tunnel", + PublicIdentity: "ziti-edge-tunnel-host", + RunWithSudo: true, + }, + "consul": { + BinaryName: "consul", + }, + }, + }, + }, + }, + }, + + Actions: model.ActionBinders{ + "bootstrap": actions2.NewBootstrapAction(), + "start": actions2.NewStartAction(actions2.MetricbeatConfig{ + ConfigPath: "metricbeat", + DataPath: "metricbeat/data", + LogPath: "metricbeat/logs", + }, + actions2.ConsulConfig{ + ServerAddr: os.Getenv("CONSUL_ENDPOINT"), + ConfigDir: "consul", + DataPath: "consul/data", + LogPath: "consul/log.out", + }), + "stop": model.Bind(component.StopInParallel("*", 15)), + "login": model.Bind(edge.Login("#ctrl")), + }, + + Infrastructure: model.InfrastructureStages{ + aws_ssh_key.Express(), + terraform_0.Express(), + semaphore0.Ready(time.Minute), + }, + + Configuration: model.ConfigurationStages{ + zitilib_runlevel_1_configuration.IfPkiNeedsRefresh( + zitilib_runlevel_1_configuration.Fabric("simple-transfer.test", "#ctrl"), + ), + config.Component(), + devkit.DevKitF(zitilab.ZitiRoot, []string{"ziti", "ziti-echo"}), + //stageziti.FetchZitiEdgeTunnel("v0.21.4"), + }, + + Distribution: model.DistributionStages{ + distribution.DistributeSshKey("*"), + distribution.Locations("*", "logs"), + distribution.DistributeDataWithReplaceCallbacks( + "*", + string(getConfigData("metricbeat.yml")), + "metricbeat/metricbeat.yml", + os.FileMode(0644), + map[string]func(*model.Host) string{ + "${host}": func(h *model.Host) string { + return os.Getenv("ELASTIC_ENDPOINT") + }, + "${user}": func(h *model.Host) string { + return os.Getenv("ELASTIC_USERNAME") + }, + "${password}": func(h *model.Host) string { + return os.Getenv("ELASTIC_PASSWORD") + }, + "${build_number}": func(h *model.Host) string { + return os.Getenv("BUILD_NUMBER") + }, + "${ziti_version}": func(h *model.Host) string { + return h.MustStringVariable("ziti_version") + }, + }, + ), + + distribution.DistributeDataWithReplaceCallbacks( + "*", + string(getConfigData("consul.hcl")), + "consul/consul.hcl", + os.FileMode(0644), + map[string]func(*model.Host) string{ + "${public_ip}": func(h *model.Host) string { + return h.PublicIp + }, + "${encryption_key}": func(h *model.Host) string { + return os.Getenv("CONSUL_ENCRYPTION_KEY") + }, + "${build_number}": func(h *model.Host) string { + return os.Getenv("BUILD_NUMBER") + }, + "${ziti_version}": func(h *model.Host) string { + return h.MustStringVariable("ziti_version") + }, + }, + ), + distribution.DistributeDataWithReplaceCallbacks( + "#ctrl", + string(getConfigData("ziti.hcl")), + "consul/ziti.hcl", + os.FileMode(0644), + map[string]func(*model.Host) string{ + "${build_number}": func(h *model.Host) string { + return os.Getenv("BUILD_NUMBER") + }, + "${ziti_version}": func(h *model.Host) string { + return h.MustStringVariable("ziti_version") + }, + }), + distribution.DistributeData( + "*", + []byte(os.Getenv("CONSUL_AGENT_CERT")), + "consul/consul-agent-ca.pem"), + rsync.RsyncStaged(), + }, + + Disposal: model.DisposalStages{ + terraform.Dispose(), + aws_ssh_key2.Dispose(), + }, +} + +func InitBootstrapExtensions() { + model.AddBootstrapExtension( + zitilab.BootstrapWithFallbacks( + &zitilab.BootstrapFromEnv{}, + )) + model.AddBootstrapExtension(binding.AwsCredentialsLoader) + model.AddBootstrapExtension(aws_ssh_key.KeyManager) +} diff --git a/network-tests/simple-transfer/stages/5_operation/echo_client.go b/network-tests/simple/stages/5_operation/echo_client.go similarity index 80% rename from network-tests/simple-transfer/stages/5_operation/echo_client.go rename to network-tests/simple/stages/5_operation/echo_client.go index a753185af..4ae6f01aa 100644 --- a/network-tests/simple-transfer/stages/5_operation/echo_client.go +++ b/network-tests/simple/stages/5_operation/echo_client.go @@ -1,7 +1,9 @@ package runlevel_5_operation import ( + "crypto/rand" "fmt" + "net/url" "strings" "github.com/openziti/fablab/kernel/lib" @@ -14,10 +16,13 @@ type echoClient struct { message string } -func AssertEcho(componentSpec, message string) model.OperatingStage { +func AssertEcho(componentSpec string) model.OperatingStage { + data := make([]byte, 10000) + _, _ = rand.Read(data) + return &echoClient{ componentSpec: componentSpec, - message: message, + message: url.QueryEscape(string(data)), } } @@ -36,7 +41,7 @@ func (ec *echoClient) Operate(run model.Run) error { //trim the newline ssh added output = strings.TrimRight(output, "\n") if output != ec.message { - return fmt.Errorf("Got message [%s] expected [%s]", output, ec.message) + return fmt.Errorf("got message [%s] expected [%s]", output, ec.message) } } return nil diff --git a/network-tests/simple-transfer/stages/5_operation/echo_server.go b/network-tests/simple/stages/5_operation/echo_server.go similarity index 100% rename from network-tests/simple-transfer/stages/5_operation/echo_server.go rename to network-tests/simple/stages/5_operation/echo_server.go diff --git a/network-tests/tests/files_test.go b/network-tests/tests/files_test.go new file mode 100644 index 000000000..8d3559533 --- /dev/null +++ b/network-tests/tests/files_test.go @@ -0,0 +1,85 @@ +/* + (c) Copyright NetFoundry Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package tests + +import ( + "fmt" + "github.com/openziti/fablab/kernel/lib" + "github.com/openziti/fablab/kernel/model" + "github.com/stretchr/testify/require" + "testing" + "time" +) + +var hashes = map[string]string{ + "1KB": "0f343b0931126a20f133d67c2b018a3b", + "100KB": "4c6426ac7ef186464ecbb0d81cbfcb1e", + "20MB": "8f4e33f3dc3e414ff94e5fb6905cba8c", +} + +type httpClient string + +const ( + ClientCurl httpClient = "curl" + ClientWget httpClient = "wget" +) + +func TestCurlFiles(t *testing.T) { + for _, clientType := range []string{"ert"} { // add zet back + for _, hostType := range []string{"ert"} { // add zet back + for _, client := range []httpClient{ClientCurl, ClientWget} { + for _, encrypted := range []bool{true, false} { + for _, size := range []string{"1KB", "100KB", "20MB"} { + testFileDownload(t, clientType, client, hostType, encrypted, size, 20*time.Second) + } + } + } + } + } +} + +func testFileDownload(t *testing.T, hostSelector string, client httpClient, hostType string, encrypted bool, fileSize string, timeout time.Duration) { + encDesk := "encrypted" + if !encrypted { + encDesk = "unencrypted" + } + + t.Run(fmt.Sprintf("%v-(%s->%s)-%s-%v", client, hostSelector, hostType, fileSize, encDesk), func(t *testing.T) { + host, err := model.GetModel().SelectHost("." + hostSelector + "-client") + req := require.New(t) + req.NoError(err) + + urlExtra := "" + if !encrypted { + urlExtra = "-unencrypted" + } + + url := fmt.Sprintf("https://ziti-files-%s%s.s3-us-west-1.amazonaws.ziti/%s.zip", hostType, urlExtra, fileSize) + sshConfigFactory := lib.NewSshConfigFactory(host) + + var cmd string + if client == ClientCurl { + cmd = fmt.Sprintf(`set -o pipefail; curl -k --header "Host: ziti-smoketest-files.s3-us-west-1.amazonaws.com" -fSL -o - %s | md5sum`, url) + } else if client == ClientWget { + cmd = fmt.Sprintf(`set -o pipefail; wget --no-check-certificate --header "Host: ziti-smoketest-files.s3-us-west-1.amazonaws.com" -O - -t 5 -T 5 %s | md5sum`, url) + } + + o, err := lib.RemoteExecAllWithTimeout(sshConfigFactory, timeout, cmd) + req.NoError(err) + req.Equal(hashes[fileSize], o[0:32]) + }) +} diff --git a/network-tests/tests/matrix.md b/network-tests/tests/matrix.md new file mode 100644 index 000000000..66c2e9595 --- /dev/null +++ b/network-tests/tests/matrix.md @@ -0,0 +1,32 @@ +# Test Matrix + +## Services + +* File transfer +* IPerf +* Fortio +* ziti-fabric-test loop + +## Clients + +* File Transfer + * curl ER/T + * curl ziti-edge-tunnel + * sdk +* IPerf + * ER/T + * ziti-edge-tunnnel +* Fortio + * ER/T + * ziti-edge-tunnel + * sdk? +* ziti-fabric-test loop + * ziti-fabric-test loop + +## Hosting Options + +* Edge Router/Tunneler - encrypted and non-encrypted +* ziti-edge-tunnel - encrypted and non-encyrpted +* router + + diff --git a/network-tests/tests/model_test.go b/network-tests/tests/model_test.go new file mode 100644 index 000000000..ee3589479 --- /dev/null +++ b/network-tests/tests/model_test.go @@ -0,0 +1,48 @@ +/* + (c) Copyright NetFoundry Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package tests + +import ( + "github.com/openziti/fablab" + "github.com/openziti/fablab/kernel/model" + "github.com/openziti/ziti/network-tests/simple" + "github.com/pkg/errors" + "github.com/sirupsen/logrus" +) + +var run model.Run + +func init() { + cfg := model.GetConfig() + instance, found := cfg.Instances[cfg.GetSelectedInstanceId()] + if !found { + panic(errors.Errorf("no instance found for current instance id %v", cfg.GetSelectedInstanceId())) + } + + if instance.Model == simple.Model.Id { + simple.InitBootstrapExtensions() + fablab.InitModel(simple.Model) + } else { + panic(errors.Errorf("unsupported model for network tests [%v]", instance.Model)) + } + + if err := model.Bootstrap(); err != nil { + logrus.Fatalf("unable to bootstrap (%s)", err) + } + + run = model.NewRun() +} diff --git a/network-tests/utils/ziti-echo/cmd/client.go b/network-tests/utils/ziti-echo/cmd/client.go index b6e43b82b..36928b60b 100644 --- a/network-tests/utils/ziti-echo/cmd/client.go +++ b/network-tests/utils/ziti-echo/cmd/client.go @@ -3,6 +3,7 @@ package cmd import ( "context" "fmt" + "github.com/openziti/sdk-golang/ziti/config" "io" "log" "net" @@ -11,7 +12,6 @@ import ( "strings" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/spf13/cobra" ) @@ -34,6 +34,12 @@ func echoClient(cmd *cobra.Command, args []string) { } zitiContext := ziti.NewContextWithConfig(cfg) + /* + zitiContext, err := ziti.NewContextFromFile(identityFile) + if err != nil { + log.Fatal(err) + } + */ dial := func(_ context.Context, _, addr string) (net.Conn, error) { service := strings.Split(addr, ":")[0] diff --git a/network-tests/utils/ziti-echo/cmd/server.go b/network-tests/utils/ziti-echo/cmd/server.go index 8ae90af3d..05f9c1c88 100644 --- a/network-tests/utils/ziti-echo/cmd/server.go +++ b/network-tests/utils/ziti-echo/cmd/server.go @@ -1,6 +1,7 @@ package cmd import ( + "github.com/openziti/sdk-golang/ziti/config" "log" "net" "net/http" @@ -10,7 +11,6 @@ import ( "time" "github.com/openziti/sdk-golang/ziti" - "github.com/openziti/sdk-golang/ziti/config" "github.com/sirupsen/logrus" "github.com/spf13/cobra" ) @@ -70,6 +70,12 @@ func (s *zitiEchoServer) run() (err error) { } zitiContext := ziti.NewContextWithConfig(config) + /* + zitiContext, err := ziti.NewContextFromFile(s.identityJson) + if err != nil { + return err + } + */ if s.listener, err = zitiContext.Listen("echo"); err != nil { return err } diff --git a/ziti/cmd/agentcli/agent.go b/ziti/cmd/agentcli/agent.go index 57e11ee09..e9ec360b5 100644 --- a/ziti/cmd/agentcli/agent.go +++ b/ziti/cmd/agentcli/agent.go @@ -202,15 +202,7 @@ func (self *AgentOptions) RunCopyOut(op byte, params []byte, out io.Writer) erro }) } - if len(self.Args) == 0 { - return self.MakeRequest(op, params, self.CopyToWriter(out)) - } - - addr, err := agent.ParseGopsAddress(self.Args) - if err != nil { - return err - } - return agent.MakeRequest(addr, op, params, os.Stdout) + return self.MakeRequest(op, params, self.CopyToWriter(out)) } func NewAgentChannel(conn net.Conn) (channel.Channel, error) { diff --git a/ziti/cmd/agentcli/agent_set_channel_log_level.go b/ziti/cmd/agentcli/agent_set_channel_log_level.go index fe8ba3f71..0fb5a1d0d 100644 --- a/ziti/cmd/agentcli/agent_set_channel_log_level.go +++ b/ziti/cmd/agentcli/agent_set_channel_log_level.go @@ -43,9 +43,9 @@ func NewSetChannelLogLevelCmd(p common.OptionsProvider) *cobra.Command { } cmd := &cobra.Command{ - Use: "set-channel-log-level target channel log-level (panic, fatal, error, warn, info, debug, trace)", + Use: "set-channel-log-level channel log-level (panic, fatal, error, warn, info, debug, trace)", Short: "Sets a channel-specific log level in the target application", - Args: cobra.MinimumNArgs(2), + Args: cobra.ExactArgs(2), Run: func(cmd *cobra.Command, args []string) { action.Cmd = cmd action.Args = args @@ -68,15 +68,8 @@ func (self *AgentSetChannelLogLevelAction) Run() error { }) } - var channelArg string - var levelArg string - if len(self.Args) == 2 { - channelArg = self.Args[0] - levelArg = self.Args[1] - } else { - channelArg = self.Args[1] - levelArg = self.Args[2] - } + channelArg := self.Args[0] + levelArg := self.Args[1] var level logrus.Level var found bool @@ -98,13 +91,5 @@ func (self *AgentSetChannelLogLevelAction) Run() error { buf.Write([]byte(channelArg)) buf.WriteByte(byte(level)) - if len(self.Args) == 2 { - return self.MakeRequest(agent.SetChannelLogLevel, buf.Bytes(), self.CopyToWriter(os.Stdout)) - } - - addr, err := agent.ParseGopsAddress(self.Args) - if err != nil { - return err - } - return agent.MakeRequest(addr, agent.SetChannelLogLevel, buf.Bytes(), os.Stdout) + return self.MakeRequest(agent.SetChannelLogLevel, buf.Bytes(), self.CopyToWriter(os.Stdout)) } diff --git a/ziti/cmd/agentcli/agent_set_log_level.go b/ziti/cmd/agentcli/agent_set_log_level.go index 0c1d08bc5..9fe369417 100644 --- a/ziti/cmd/agentcli/agent_set_log_level.go +++ b/ziti/cmd/agentcli/agent_set_log_level.go @@ -41,9 +41,9 @@ func NewSetLogLevelCmd(p common.OptionsProvider) *cobra.Command { } cmd := &cobra.Command{ - Use: "set-log-level target log-level (panic, fatal, error, warn, info, debug, trace)", + Use: "set-log-level log-level (panic, fatal, error, warn, info, debug, trace)", Short: "Sets the global logrus logging level in the target application", - Args: cobra.MinimumNArgs(1), + Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { action.Cmd = cmd action.Args = args @@ -66,12 +66,7 @@ func (self *AgentSetLogLevelAction) Run() error { }) } - var levelArg string - if len(self.Args) == 1 { - levelArg = self.Args[0] - } else { - levelArg = self.Args[1] - } + levelArg := self.Args[0] var level logrus.Level var found bool @@ -87,14 +82,5 @@ func (self *AgentSetLogLevelAction) Run() error { } buf := []byte{byte(level)} - - if len(self.Args) == 1 { - return self.MakeRequest(agent.SetLogLevel, buf, self.CopyToWriter(os.Stdout)) - } - - addr, err := agent.ParseGopsAddress(self.Args) - if err != nil { - return err - } - return agent.MakeRequest(addr, agent.SetLogLevel, buf, os.Stdout) + return self.MakeRequest(agent.SetLogLevel, buf, self.CopyToWriter(os.Stdout)) } diff --git a/ziti/cmd/agentcli/agent_setgc.go b/ziti/cmd/agentcli/agent_setgc.go index 3d6176e53..824c8df52 100644 --- a/ziti/cmd/agentcli/agent_setgc.go +++ b/ziti/cmd/agentcli/agent_setgc.go @@ -40,9 +40,9 @@ func NewSetGcCmd(p common.OptionsProvider) *cobra.Command { } cmd := &cobra.Command{ - Use: "setgc target gc-percentage", + Use: "setgc gc-percentage", Short: "Sets the GC percentage in the target application", - Args: cobra.MinimumNArgs(1), + Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { action.Cmd = cmd action.Args = args @@ -65,12 +65,7 @@ func (self *AgentSetGcAction) Run() error { }) } - var pctArg string - if len(self.Args) == 1 { - pctArg = self.Args[0] - } else { - pctArg = self.Args[1] - } + pctArg := self.Args[0] perc, err := strconv.ParseInt(pctArg, 10, strconv.IntSize) if err != nil { @@ -79,14 +74,5 @@ func (self *AgentSetGcAction) Run() error { buf := make([]byte, binary.MaxVarintLen64) binary.PutVarint(buf, perc) - if len(self.Args) == 1 { - return self.MakeRequest(agent.SetGCPercent, buf, self.CopyToWriter(os.Stdout)) - } - - addr, err := agent.ParseGopsAddress(self.Args) - if err != nil { - return err - } - - return agent.MakeRequest(addr, agent.SetGCPercent, buf, os.Stdout) + return self.MakeRequest(agent.SetGCPercent, buf, self.CopyToWriter(os.Stdout)) } diff --git a/ziti/cmd/agentcli/agent_simple.go b/ziti/cmd/agentcli/agent_simple.go index ff8f0dc4c..35c9febe6 100644 --- a/ziti/cmd/agentcli/agent_simple.go +++ b/ziti/cmd/agentcli/agent_simple.go @@ -36,8 +36,8 @@ func NewSimpleAgentCmd(name string, op byte, p common.OptionsProvider, desc stri } cmd := &cobra.Command{ - Args: cobra.MaximumNArgs(1), - Use: name + " ", + Args: cobra.ExactArgs(0), + Use: name, Short: desc, RunE: func(cmd *cobra.Command, args []string) error { action.Cmd = cmd @@ -59,8 +59,8 @@ func NewSimpleAgentCustomCmd(name string, appId AgentAppId, op byte, p common.Op } cmd := &cobra.Command{ - Args: cobra.MaximumNArgs(1), - Use: name + " ", + Args: cobra.ExactArgs(0), + Use: name, Run: func(cmd *cobra.Command, args []string) { action.Cmd = cmd action.Args = args diff --git a/ziti/cmd/agentcli/agent_stack.go b/ziti/cmd/agentcli/agent_stack.go index afa1e3ffa..beccd997a 100644 --- a/ziti/cmd/agentcli/agent_stack.go +++ b/ziti/cmd/agentcli/agent_stack.go @@ -39,8 +39,8 @@ func NewStackCmd(p common.OptionsProvider) *cobra.Command { } cmd := &cobra.Command{ - Args: cobra.MaximumNArgs(1), - Use: "stack []", + Args: cobra.ExactArgs(0), + Use: "stack", Short: "Emits a go-routine stack dump from the target application", Run: func(cmd *cobra.Command, args []string) { action.Cmd = cmd diff --git a/ziti/cmd/install/common_install.go b/ziti/cmd/install/common_install.go index bcc915817..c004079ef 100644 --- a/ziti/cmd/install/common_install.go +++ b/ziti/cmd/install/common_install.go @@ -19,6 +19,7 @@ package install import ( "fmt" "github.com/blang/semver" + "github.com/openziti/ziti/common/getziti" c "github.com/openziti/ziti/ziti/constants" "github.com/openziti/ziti/ziti/internal/log" "github.com/openziti/ziti/ziti/util" @@ -197,17 +198,13 @@ func (o *InstallOptions) getLatestTerraformProviderVersion(branch string, provid func (o *InstallOptions) getLatestGitHubReleaseVersion(zitiApp string) (semver.Version, error) { var result semver.Version - release, err := util.GetHighestVersionGitHubReleaseInfo(o.Verbose, zitiApp) + release, err := getziti.GetHighestVersionGitHubReleaseInfo(zitiApp, o.Verbose) if release != nil { result = release.SemVer } return result, err } -func (o *InstallOptions) getHighestVersionGitHubReleaseInfo(zitiApp string) (*util.GitHubReleasesData, error) { - return util.GetHighestVersionGitHubReleaseInfo(o.Verbose, zitiApp) -} - func (o *InstallOptions) getCurrentZitiSnapshotList() ([]string, error) { children, err := util.GetCurrentSnapshotListFromArtifactory(o.Verbose) @@ -330,70 +327,15 @@ func (o *InstallOptions) installTerraformProvider(branch string, provider string return os.Chmod(fileToChmod, 0755) } -func (o *InstallOptions) findVersionAndInstallGitHubRelease(zitiApp string, zitiAppGitHub string, upgrade bool, version string) error { - var latestVersion semver.Version - var err error - if version != "" { - if strings.Contains(version, "*") { - latestRelease, err := util.GetHighestVersionGitHubReleaseInfo(o.Verbose, zitiAppGitHub) - if err != nil { - return err - } - latestVersion = latestRelease.SemVer - version = latestVersion.String() - } else { - latestVersion, err = semver.Make(version) - if err != nil { - return err - } - } - } - - release, err := util.GetLatestGitHubReleaseAsset(o.Staging, zitiAppGitHub) - if err != nil { - return err - } - return o.installGitHubRelease(zitiApp, upgrade, release) -} - -func (o *InstallOptions) installGitHubRelease(zitiApp string, upgrade bool, release *util.GitHubReleasesData) error { +func (o *InstallOptions) FindVersionAndInstallGitHubRelease(upgrade bool, zitiApp string, zitiAppGitHub string, version string) error { binDir, err := util.BinaryLocation() if err != nil { return err } - binary := zitiApp - fileName := binary - if !upgrade { - f, flag, err := o.shouldInstallBinary(binDir, binary) - if err != nil || !flag { + if _, download, err := o.shouldInstallBinary(binDir, zitiApp); err != nil || !download { return err } - fileName = f - } - - fullPath := filepath.Join(binDir, fileName) - ext := ".zip" - zipFile := fullPath + ext - - releaseUrl, err := release.GetDownloadUrl(zitiApp) - if err != nil { - return err } - - err = util.DownloadGitHubReleaseAsset(releaseUrl, zipFile) - if err != nil { - return err - } - - err = util.Unzip(zipFile, binDir) - if err != nil { - return err - } - err = os.Remove(zipFile) - if err != nil { - return err - } - log.Infof("Successfully installed '%s' version '%s'\n", zitiApp, release.SemVer) - return os.Chmod(fullPath, 0755) + return getziti.FindVersionAndInstallGitHubRelease(zitiApp, zitiAppGitHub, runtime.GOOS, runtime.GOARCH, binDir, version, o.Verbose) } diff --git a/ziti/cmd/install/install_ziti_edge_tunnel.go b/ziti/cmd/install/install_ziti_edge_tunnel.go index bf42c6143..74725f3b3 100644 --- a/ziti/cmd/install/install_ziti_edge_tunnel.go +++ b/ziti/cmd/install/install_ziti_edge_tunnel.go @@ -17,15 +17,16 @@ package install import ( + "github.com/blang/semver" + "github.com/openziti/ziti/common/getziti" "github.com/openziti/ziti/ziti/cmd/common" cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/cmd/templates" - "io" - - "github.com/blang/semver" c "github.com/openziti/ziti/ziti/constants" "github.com/openziti/ziti/ziti/internal/log" "github.com/spf13/cobra" + "io" + "strings" ) var ( @@ -77,19 +78,20 @@ func NewCmdInstallZitiEdgeTunnel(out io.Writer, errOut io.Writer) *cobra.Command // Run implements the command func (o *InstallOptions) installZitiEdgeTunnel(targetVersion string) error { - newVersion, err := o.getLatestGitHubReleaseVersion(c.ZITI_EDGE_TUNNEL_GITHUB) - if err != nil { - return err - } + var newVersion semver.Version if targetVersion != "" { - newVersion, err = semver.Make(targetVersion) + newVersion = semver.MustParse(strings.TrimPrefix(targetVersion, "v")) + } else { + v, err := getziti.GetLatestGitHubReleaseVersion(c.ZITI_EDGE_TUNNEL_GITHUB, o.Verbose) + if err != nil { + return err + } + newVersion = v } log.Infoln("Attempting to install '" + c.ZITI_EDGE_TUNNEL + "' version: " + newVersion.String()) - - return o.findVersionAndInstallGitHubRelease(c.ZITI_EDGE_TUNNEL, c.ZITI_EDGE_TUNNEL_GITHUB, false, newVersion.String()) - + return o.FindVersionAndInstallGitHubRelease(false, c.ZITI_EDGE_TUNNEL, c.ZITI_EDGE_TUNNEL_GITHUB, newVersion.String()) } // Run implements the command diff --git a/ziti/cmd/install/install_ziti_prox_c.go b/ziti/cmd/install/install_ziti_prox_c.go index 50de6ff70..ec79a4bb2 100644 --- a/ziti/cmd/install/install_ziti_prox_c.go +++ b/ziti/cmd/install/install_ziti_prox_c.go @@ -17,15 +17,16 @@ package install import ( + "github.com/blang/semver" + "github.com/openziti/ziti/common/getziti" "github.com/openziti/ziti/ziti/cmd/common" cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/cmd/templates" c "github.com/openziti/ziti/ziti/constants" "github.com/openziti/ziti/ziti/internal/log" - "io" - - "github.com/blang/semver" "github.com/spf13/cobra" + "io" + "strings" ) var ( @@ -76,20 +77,20 @@ func NewCmdInstallZitiProxC(out io.Writer, errOut io.Writer) *cobra.Command { } func (o *InstallOptions) installZitiProxC(targetVersion string) error { + var newVersion semver.Version + if targetVersion != "" { - version, err := semver.Make(targetVersion) + newVersion = semver.MustParse(strings.TrimPrefix(targetVersion, "v")) + } else { + v, err := getziti.GetLatestGitHubReleaseVersion(c.ZITI_SDK_C_GITHUB, o.Verbose) if err != nil { return err } - return o.findVersionAndInstallGitHubRelease(c.ZITI_PROX_C, c.ZITI_SDK_C_GITHUB, false, version.String()) + newVersion = v } - release, err := o.getHighestVersionGitHubReleaseInfo(c.ZITI_SDK_C_GITHUB) - if err != nil { - return err - } - log.Infoln("Attempting to install '" + c.ZITI_PROX_C + "' version: " + release.SemVer.String()) - return o.installGitHubRelease(c.ZITI_PROX_C, false, release) + log.Infoln("Attempting to install '" + c.ZITI_PROX_C + "' version: " + newVersion.String()) + return o.FindVersionAndInstallGitHubRelease(false, c.ZITI_PROX_C, c.ZITI_SDK_C_GITHUB, newVersion.String()) } // Run implements the command diff --git a/ziti/cmd/install/upgrade_ziti_controller.go b/ziti/cmd/install/upgrade_ziti_controller.go index b42e3aa80..ed2a3720b 100644 --- a/ziti/cmd/install/upgrade_ziti_controller.go +++ b/ziti/cmd/install/upgrade_ziti_controller.go @@ -17,25 +17,8 @@ package install import ( - "github.com/openziti/ziti/ziti/cmd/common" - "io" - "github.com/openziti/ziti/common/version" - cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" - "github.com/openziti/ziti/ziti/cmd/templates" c "github.com/openziti/ziti/ziti/constants" - "github.com/spf13/cobra" -) - -var ( - upgradeZitiControllerLong = templates.LongDesc(` - Upgrades the Ziti Controller app if there is a newer release -`) - - upgradeZitiControllerExample = templates.Examples(` - # Upgrades the Ziti Controller app - ziti upgrade ziti-controller - `) ) // UpgradeZitiControllerOptions the options for the upgrade ziti-controller command @@ -45,35 +28,6 @@ type UpgradeZitiControllerOptions struct { Version string } -// NewCmdUpgradeZitiController defines the command -func NewCmdUpgradeZitiController(out io.Writer, errOut io.Writer) *cobra.Command { - options := &UpgradeZitiControllerOptions{ - InstallOptions: InstallOptions{ - CommonOptions: common.CommonOptions{ - Out: out, - Err: errOut, - }, - }, - } - - cmd := &cobra.Command{ - Use: "ziti-controller", - Short: "Upgrades the Ziti Controller app - if there is a new version available", - Aliases: []string{"controller", "ctrl", "zc"}, - Long: upgradeZitiControllerLong, - Example: upgradeZitiControllerExample, - Run: func(cmd *cobra.Command, args []string) { - options.Cmd = cmd - options.Args = args - err := options.Run() - cmdhelper.CheckErr(err) - }, - } - cmd.Flags().StringVarP(&options.Version, "version", "v", "", "The specific version to upgrade to") - options.AddCommonFlags(cmd) - return cmd -} - // Run implements the command func (o *UpgradeZitiControllerOptions) Run() error { newVersion, err := o.getLatestZitiAppVersion(version.GetBranch(), c.ZITI_CONTROLLER) diff --git a/ziti/cmd/install/upgrade_ziti_edge_tunnel.go b/ziti/cmd/install/upgrade_ziti_edge_tunnel.go index 0bd73af45..1794669a1 100644 --- a/ziti/cmd/install/upgrade_ziti_edge_tunnel.go +++ b/ziti/cmd/install/upgrade_ziti_edge_tunnel.go @@ -17,24 +17,7 @@ package install import ( - "github.com/openziti/ziti/ziti/cmd/common" - "io" - - cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" - "github.com/openziti/ziti/ziti/cmd/templates" c "github.com/openziti/ziti/ziti/constants" - "github.com/spf13/cobra" -) - -var ( - upgradeZitiEdgeTunnelLong = templates.LongDesc(` - Upgrades the Ziti Edge Tunnel app if there is a newer release -`) - - upgradeZitiEdgeTunnelExample = templates.Examples(` - # Upgrades the Ziti Edge Tunnel app - ziti upgrade ziti-edge-tunnel - `) ) // UpgradeZitiEdgeTunnelOptions the options for the upgrade ziti-edge-tunnel command @@ -44,35 +27,6 @@ type UpgradeZitiEdgeTunnelOptions struct { Version string } -// NewCmdUpgradeZitiEdgeTunnel defines the command -func NewCmdUpgradeZitiEdgeTunnel(out io.Writer, errOut io.Writer) *cobra.Command { - options := &UpgradeZitiEdgeTunnelOptions{ - InstallOptions: InstallOptions{ - CommonOptions: common.CommonOptions{ - Out: out, - Err: errOut, - }, - }, - } - - cmd := &cobra.Command{ - Use: "ziti-edge-tunnel", - Short: "Upgrades the Ziti Edge Tunnel app - if there is a new version available", - Aliases: []string{"edge-tunnel", "et"}, - Long: upgradeZitiEdgeTunnelLong, - Example: upgradeZitiEdgeTunnelExample, - Run: func(cmd *cobra.Command, args []string) { - options.Cmd = cmd - options.Args = args - err := options.Run() - cmdhelper.CheckErr(err) - }, - } - cmd.Flags().StringVarP(&options.Version, "version", "v", "", "The specific version to upgrade to") - options.AddCommonFlags(cmd) - return cmd -} - // Run implements the command func (o *UpgradeZitiEdgeTunnelOptions) Run() error { newVersion, err := o.getLatestGitHubReleaseVersion(c.ZITI_EDGE_TUNNEL_GITHUB) @@ -88,5 +42,5 @@ func (o *UpgradeZitiEdgeTunnelOptions) Run() error { o.deleteInstalledBinary(c.ZITI_EDGE_TUNNEL) - return o.findVersionAndInstallGitHubRelease(c.ZITI_EDGE_TUNNEL, c.ZITI_EDGE_TUNNEL_GITHUB, true, newVersionStr) + return o.FindVersionAndInstallGitHubRelease(true, c.ZITI_EDGE_TUNNEL, c.ZITI_EDGE_TUNNEL_GITHUB, newVersionStr) } diff --git a/ziti/cmd/install/upgrade_ziti_prox_c.go b/ziti/cmd/install/upgrade_ziti_prox_c.go index db6ae533f..620ac1cf3 100644 --- a/ziti/cmd/install/upgrade_ziti_prox_c.go +++ b/ziti/cmd/install/upgrade_ziti_prox_c.go @@ -17,24 +17,7 @@ package install import ( - "github.com/openziti/ziti/ziti/cmd/common" - "io" - - cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" - "github.com/openziti/ziti/ziti/cmd/templates" c "github.com/openziti/ziti/ziti/constants" - "github.com/spf13/cobra" -) - -var ( - upgradeZitiProxCLong = templates.LongDesc(` - Upgrades the Ziti ProxC app if there is a newer release -`) - - upgradeZitiProxCExample = templates.Examples(` - # Upgrades the Ziti ProxC app - ziti upgrade ziti-prox-c - `) ) // UpgradeZitiProxCOptions the options for the upgrade ziti-prox-c command @@ -44,35 +27,6 @@ type UpgradeZitiProxCOptions struct { Version string } -// NewCmdUpgradeZitiProxC defines the command -func NewCmdUpgradeZitiProxC(out io.Writer, errOut io.Writer) *cobra.Command { - options := &UpgradeZitiProxCOptions{ - InstallOptions: InstallOptions{ - CommonOptions: common.CommonOptions{ - Out: out, - Err: errOut, - }, - }, - } - - cmd := &cobra.Command{ - Use: "ziti-prox-c", - Short: "Upgrades the Ziti ProxC app - if there is a new version available", - Aliases: []string{"proxc"}, - Long: upgradeZitiProxCLong, - Example: upgradeZitiProxCExample, - Run: func(cmd *cobra.Command, args []string) { - options.Cmd = cmd - options.Args = args - err := options.Run() - cmdhelper.CheckErr(err) - }, - } - cmd.Flags().StringVarP(&options.Version, "version", "v", "", "The specific version to upgrade to") - options.AddCommonFlags(cmd) - return cmd -} - // Run implements the command func (o *UpgradeZitiProxCOptions) Run() error { newVersion, err := o.getLatestGitHubReleaseVersion(c.ZITI_SDK_C_GITHUB) @@ -88,5 +42,5 @@ func (o *UpgradeZitiProxCOptions) Run() error { o.deleteInstalledBinary(c.ZITI_PROX_C) - return o.findVersionAndInstallGitHubRelease(c.ZITI_PROX_C, c.ZITI_SDK_C_GITHUB, true, newVersionStr) + return o.FindVersionAndInstallGitHubRelease(true, c.ZITI_PROX_C, c.ZITI_SDK_C_GITHUB, newVersionStr) } diff --git a/ziti/cmd/install/upgrade_ziti_router.go b/ziti/cmd/install/upgrade_ziti_router.go index 43aaabfc3..e584f694c 100644 --- a/ziti/cmd/install/upgrade_ziti_router.go +++ b/ziti/cmd/install/upgrade_ziti_router.go @@ -17,25 +17,8 @@ package install import ( - "github.com/openziti/ziti/ziti/cmd/common" - "io" - "github.com/openziti/ziti/common/version" - cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" - "github.com/openziti/ziti/ziti/cmd/templates" c "github.com/openziti/ziti/ziti/constants" - "github.com/spf13/cobra" -) - -var ( - upgradeZitiRouterLong = templates.LongDesc(` - Upgrades the Ziti Router app if there is a newer release -`) - - upgradeZitiRouterExample = templates.Examples(` - # Upgrades the Ziti Router app - ziti upgrade ziti-router - `) ) // UpgradeZitiRouterOptions the options for the upgrade ziti-router command @@ -45,35 +28,6 @@ type UpgradeZitiRouterOptions struct { Version string } -// NewCmdUpgradeZitiRouter defines the command -func NewCmdUpgradeZitiRouter(out io.Writer, errOut io.Writer) *cobra.Command { - options := &UpgradeZitiRouterOptions{ - InstallOptions: InstallOptions{ - CommonOptions: common.CommonOptions{ - Out: out, - Err: errOut, - }, - }, - } - - cmd := &cobra.Command{ - Use: "ziti-router", - Short: "Upgrades the Ziti Router app - if there is a new version available", - Aliases: []string{"router", "rtr", "r"}, - Long: upgradeZitiRouterLong, - Example: upgradeZitiRouterExample, - Run: func(cmd *cobra.Command, args []string) { - options.Cmd = cmd - options.Args = args - err := options.Run() - cmdhelper.CheckErr(err) - }, - } - cmd.Flags().StringVarP(&options.Version, "version", "v", "", "The specific version to upgrade to") - options.AddCommonFlags(cmd) - return cmd -} - // Run implements the command func (o *UpgradeZitiRouterOptions) Run() error { newVersion, err := o.getLatestZitiAppVersion(version.GetBranch(), c.ZITI_ROUTER) diff --git a/ziti/cmd/install/upgrade_ziti_tunnel.go b/ziti/cmd/install/upgrade_ziti_tunnel.go index 6cd16cc35..254a2d27c 100644 --- a/ziti/cmd/install/upgrade_ziti_tunnel.go +++ b/ziti/cmd/install/upgrade_ziti_tunnel.go @@ -17,25 +17,8 @@ package install import ( - "github.com/openziti/ziti/ziti/cmd/common" - "io" - "github.com/openziti/ziti/common/version" - cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" - "github.com/openziti/ziti/ziti/cmd/templates" c "github.com/openziti/ziti/ziti/constants" - "github.com/spf13/cobra" -) - -var ( - upgradeZitiTunnelLong = templates.LongDesc(` - Upgrades the Ziti Tunnel app if there is a newer release -`) - - upgradeZitiTunnelExample = templates.Examples(` - # Upgrades the Ziti Tunnel app - ziti upgrade ziti-tunnel - `) ) // UpgradeZitiTunnelOptions the options for the upgrade ziti-tunnel command @@ -45,35 +28,6 @@ type UpgradeZitiTunnelOptions struct { Version string } -// NewCmdUpgradeZitiTunnel defines the command -func NewCmdUpgradeZitiTunnel(out io.Writer, errOut io.Writer) *cobra.Command { - options := &UpgradeZitiTunnelOptions{ - InstallOptions: InstallOptions{ - CommonOptions: common.CommonOptions{ - Out: out, - Err: errOut, - }, - }, - } - - cmd := &cobra.Command{ - Use: "ziti-tunnel", - Short: "Upgrades the Ziti Tunnel app - if there is a new version available", - Aliases: []string{"tunnel", "rtr", "r"}, - Long: upgradeZitiTunnelLong, - Example: upgradeZitiTunnelExample, - Run: func(cmd *cobra.Command, args []string) { - options.Cmd = cmd - options.Args = args - err := options.Run() - cmdhelper.CheckErr(err) - }, - } - cmd.Flags().StringVarP(&options.Version, "version", "v", "", "The specific version to upgrade to") - options.AddCommonFlags(cmd) - return cmd -} - // Run implements the command func (o *UpgradeZitiTunnelOptions) Run() error { newVersion, err := o.getLatestZitiAppVersion(version.GetBranch(), c.ZITI_TUNNEL) diff --git a/ziti/util/rest.go b/ziti/util/rest.go index 4e17634d5..9d2416f7b 100644 --- a/ziti/util/rest.go +++ b/ziti/util/rest.go @@ -18,7 +18,6 @@ package util import ( "archive/tar" - "archive/zip" "bytes" "compress/gzip" "encoding/json" @@ -33,7 +32,6 @@ import ( "github.com/openziti/ziti/common/version" cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers" c "github.com/openziti/ziti/ziti/constants" - "github.com/pkg/errors" "gopkg.in/resty.v1" "io" "net/http" @@ -42,7 +40,6 @@ import ( "path" "path/filepath" "runtime" - "sort" "strconv" "strings" "text/template" @@ -154,116 +151,6 @@ func GetLatestVersionFromArtifactory(verbose bool, staging bool, branch string, return semver.Make(strings.TrimPrefix(result.Version, "v")) } -// Used to parse the '/releases/latest' response from GitHub -type GitHubReleasesData struct { - Version string `json:"tag_name"` - SemVer semver.Version - Assets []struct { - BrowserDownloadURL string `json:"browser_download_url"` - } -} - -func (self *GitHubReleasesData) GetDownloadUrl(appName string) (string, error) { - arches := []string{runtime.GOARCH} - if strings.ToLower(runtime.GOARCH) == "amd64" { - arches = append(arches, "x86_64") - } - - for _, asset := range self.Assets { - ok := false - for _, arch := range arches { - if strings.Contains(strings.ToLower(asset.BrowserDownloadURL), arch) { - ok = true - } - } - - ok = ok && strings.Contains(strings.ToLower(asset.BrowserDownloadURL), runtime.GOOS) - if ok { - return asset.BrowserDownloadURL, nil - } - } - - return "", errors.Errorf("no download URL found for os/arch %v/%v for '%v'", runtime.GOOS, runtime.GOARCH, appName) -} - -func GetHighestVersionGitHubReleaseInfo(verbose bool, appName string) (*GitHubReleasesData, error) { - resp, err := getRequest(verbose). - SetQueryParams(map[string]string{}). - SetHeader("Accept", "application/vnd.github.v3+json"). - SetResult([]*GitHubReleasesData{}). - Get("https://api.github.com/repos/openziti/" + appName + "/releases") - - if err != nil { - return nil, errors.Wrapf(err, "unable to get latest version for '%s'", appName) - } - - if resp.StatusCode() == http.StatusNotFound { - return nil, errors.Errorf("unable to get latest version for '%s'; Not Found (invalid URL)", appName) - } - if resp.StatusCode() != http.StatusOK { - return nil, errors.Errorf("unable to get latest version for '%s'; return status=%s", appName, resp.Status()) - } - - result := *resp.Result().(*[]*GitHubReleasesData) - return getHighestVersionRelease(appName, result) -} - -func getHighestVersionRelease(appName string, releases []*GitHubReleasesData) (*GitHubReleasesData, error) { - for _, release := range releases { - v, err := semver.ParseTolerant(release.Version) - if err != nil { - return nil, errors.Wrapf(err, "unable to parse version %v for '%v'", release.Version, appName) - } - release.SemVer = v - } - sort.Slice(releases, func(i, j int) bool { - return releases[i].SemVer.GT(releases[j].SemVer) // sort in reverse order - }) - if len(releases) == 0 { - return nil, errors.Errorf("no releases found for '%v'", appName) - } - return releases[0], nil -} - -func GetLatestGitHubReleaseAsset(verbose bool, appName string) (*GitHubReleasesData, error) { - resp, err := getRequest(verbose). - SetQueryParams(map[string]string{}). - SetHeader("Accept", "application/vnd.github.v3+json"). - SetResult(&GitHubReleasesData{}). - Get("https://api.github.com/repos/openziti/" + appName + "/releases/latest") - - if err != nil { - return nil, fmt.Errorf("unable to get latest version for '%s'; %s", appName, err) - } - - if resp.StatusCode() == http.StatusNotFound { - return nil, fmt.Errorf("unable to get latest version for '%s'; Not Found", appName) - } - if resp.StatusCode() != http.StatusOK { - return nil, fmt.Errorf("unable to get latest version for '%s'; %s", appName, resp.Status()) - } - - result := resp.Result().(*GitHubReleasesData) - return result, nil -} - -// DownloadGitHubReleaseAsset will download a file from the given GitHUb release area -func DownloadGitHubReleaseAsset(fullUrl string, filepath string) (err error) { - resp, err := getRequest(false). - SetOutput(filepath). - Get(fullUrl) - - if err != nil { - return fmt.Errorf("unable to download '%s', %s", fullUrl, err) - } - - if resp.IsError() { - return fmt.Errorf("unable to download file, error HTTP status code [%d] returned for url [%s]", resp.StatusCode(), fullUrl) - } - - return nil -} - // Used to parse the '/api/search/aql' response from Artifactory type AQLResult struct { Repo string @@ -505,70 +392,6 @@ func UnTargz(tarball, target string, onlyFiles []string) error { return nil } -func Unzip(src, dest string) error { - r, err := zip.OpenReader(src) - if err != nil { - return err - } - defer func() { - if err := r.Close(); err != nil { - panic(err) - } - }() - - os.MkdirAll(dest, 0755) - - // Closure to address file descriptors issue with all the deferred .Close() methods - extractAndWriteFile := func(f *zip.File) error { - rc, err := f.Open() - if err != nil { - return err - } - defer func() { - if err := rc.Close(); err != nil { - panic(err) - } - }() - - path := filepath.Join(dest, f.Name) - - // Check for ZipSlip (Directory traversal) - if !strings.HasPrefix(path, filepath.Clean(dest)+string(os.PathSeparator)) { - return fmt.Errorf("illegal file path: %s", path) - } - - if f.FileInfo().IsDir() { - os.MkdirAll(path, f.Mode()) - } else { - os.MkdirAll(filepath.Dir(path), f.Mode()) - f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) - if err != nil { - return err - } - defer func() { - if err := f.Close(); err != nil { - panic(err) - } - }() - - _, err = io.Copy(f, rc) - if err != nil { - return err - } - } - return nil - } - - for _, f := range r.File { - err := extractAndWriteFile(f) - if err != nil { - return err - } - } - - return nil -} - func PrettyPrintResponse(resp *resty.Response) string { out := resp.String() var prettyJSON bytes.Buffer diff --git a/ziti/util/updates.go b/ziti/util/updates.go index 52239faae..2c94c4694 100644 --- a/ziti/util/updates.go +++ b/ziti/util/updates.go @@ -18,6 +18,7 @@ package util import ( "fmt" + "github.com/openziti/ziti/common/getziti" "github.com/openziti/ziti/ziti/constants" "os" "strings" @@ -29,12 +30,12 @@ import ( "github.com/openziti/ziti/common/version" ) -func LogReleaseVersionCheck(ziti_component string) { +func LogReleaseVersionCheck(zitiComponent string) { logger := pfxlog.Logger() if strings.ToLower(os.Getenv("ZITI_CHECK_VERSION")) == "true" { logger.Debug("ZITI_CHECK_VERSION is true. starting version check") developmentSemver, _ := semver.Parse("0.0.0") - latestGithubRelease, err := GetHighestVersionGitHubReleaseInfo(false, constants.ZITI) + latestGithubRelease, err := getziti.GetHighestVersionGitHubReleaseInfo(constants.ZITI, false) if err != nil { logger.Debugf("failed to find latest GitHub version with error: %s", err) return // soft-fail version check if GitHub API is unavailable @@ -50,7 +51,7 @@ func LogReleaseVersionCheck(ziti_component string) { if currentBuildSemver.EQ(developmentSemver) { logger.Debugf( "this build of %s is unreleased v%s", - ziti_component, + zitiComponent, developmentSemver, ) } else if latestGithubRelease.SemVer.GT(currentBuildSemver) { @@ -66,20 +67,20 @@ https://github.com/openziti/%s/releases/latest/ ********************************************************************************* `, green("v"+latestGithubRelease.SemVer.String()), - ziti_component, + zitiComponent, yellow("v"+currentBuildSemver.String()), constants.ZITI, ) logger.Debugf( "this v%s build of %s is superseded by v%s", currentBuildSemver, - ziti_component, + zitiComponent, latestGithubRelease, ) } else if latestGithubRelease.SemVer.EQ(currentBuildSemver) { logger.Debugf( "this build of %s is the latest release v%s", - ziti_component, + zitiComponent, currentBuildSemver, ) } From b687e42fb567d3c4b3d21e0a709e70b03d863198 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Wed, 24 May 2023 18:46:39 -0400 Subject: [PATCH 49/51] Update for tunnel api change. Add agent unroute command. --- ziti/cmd/agentcli/agent.go | 1 + ziti/cmd/agentcli/agent_router_add_route.go | 2 +- ziti/cmd/agentcli/agent_router_unroute.go | 88 +++++++++++++++++++++ ziti/cmd/demo/zcat.go | 5 +- ziti/tunnel/run.go | 2 +- ziti/tunnel/tproxy.go | 2 +- 6 files changed, 94 insertions(+), 6 deletions(-) create mode 100644 ziti/cmd/agentcli/agent_router_unroute.go diff --git a/ziti/cmd/agentcli/agent.go b/ziti/cmd/agentcli/agent.go index e9ec360b5..b18291a57 100644 --- a/ziti/cmd/agentcli/agent.go +++ b/ziti/cmd/agentcli/agent.go @@ -91,6 +91,7 @@ func NewAgentCmd(p common.OptionsProvider) *cobra.Command { agentCmd.AddCommand(routerCmd) routerCmd.AddCommand(NewRouteCmd(p)) + routerCmd.AddCommand(NewUnrouteCmd(p)) routerCmd.AddCommand(NewSimpleAgentCustomCmd("dump-api-sessions", AgentAppRouter, debugops.DumpApiSessions, p)) routerCmd.AddCommand(NewSimpleChAgentCustomCmd("dump-routes", AgentAppRouter, int32(mgmt_pb.ContentType_RouterDebugDumpForwarderTablesRequestType), p)) routerCmd.AddCommand(NewSimpleChAgentCustomCmd("dump-links", AgentAppRouter, int32(mgmt_pb.ContentType_RouterDebugDumpLinksRequestType), p)) diff --git a/ziti/cmd/agentcli/agent_router_add_route.go b/ziti/cmd/agentcli/agent_router_add_route.go index 71e338ed5..d88bcc11f 100644 --- a/ziti/cmd/agentcli/agent_router_add_route.go +++ b/ziti/cmd/agentcli/agent_router_add_route.go @@ -39,7 +39,7 @@ func NewRouteCmd(p common.OptionsProvider) *cobra.Command { } cmd := &cobra.Command{ - Args: cobra.RangeArgs(3, 4), + Args: cobra.ExactArgs(4), Use: "route ", RunE: func(cmd *cobra.Command, args []string) error { action.Cmd = cmd diff --git a/ziti/cmd/agentcli/agent_router_unroute.go b/ziti/cmd/agentcli/agent_router_unroute.go new file mode 100644 index 000000000..777ec5b3b --- /dev/null +++ b/ziti/cmd/agentcli/agent_router_unroute.go @@ -0,0 +1,88 @@ +/* + Copyright NetFoundry Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package agentcli + +import ( + "fmt" + "github.com/openziti/channel/v2" + "github.com/openziti/fabric/pb/ctrl_pb" + "github.com/openziti/fabric/pb/mgmt_pb" + "github.com/openziti/fabric/router" + "github.com/openziti/ziti/ziti/cmd/common" + "github.com/spf13/cobra" + "google.golang.org/protobuf/proto" +) + +type AgentUnrouteAction struct { + AgentOptions +} + +func NewUnrouteCmd(p common.OptionsProvider) *cobra.Command { + action := &AgentUnrouteAction{ + AgentOptions: AgentOptions{ + CommonOptions: p(), + }, + } + + cmd := &cobra.Command{ + Args: cobra.ExactArgs(1), + Use: "unroute ", + RunE: func(cmd *cobra.Command, args []string) error { + action.Cmd = cmd + action.Args = args + return action.MakeChannelRequest(router.AgentAppId, action.makeRequest) + }, + } + + action.AddAgentOptions(cmd) + + return cmd +} + +func (self *AgentUnrouteAction) makeRequest(ch channel.Channel) error { + route := &ctrl_pb.Unroute{ + CircuitId: self.Args[0], + Now: true, + } + + buf, err := proto.Marshal(route) + if err != nil { + return err + } + + msg := channel.NewMessage(int32(mgmt_pb.ContentType_RouterDebugUnrouteRequestType), buf) + reply, err := msg.WithTimeout(self.timeout).SendForReply(ch) + if err != nil { + return err + } + + if reply.ContentType == channel.ContentTypeResultType { + result := channel.UnmarshalResult(reply) + if result.Success { + if len(result.Message) > 0 { + fmt.Printf("success: %v\n", result.Message) + } else { + fmt.Println("success") + } + } else { + fmt.Printf("error: %v\n", result.Message) + } + } else { + fmt.Printf("unexpected response type %v\n", reply.ContentType) + } + return nil +} diff --git a/ziti/cmd/demo/zcat.go b/ziti/cmd/demo/zcat.go index 2711a14a5..3635cbc66 100644 --- a/ziti/cmd/demo/zcat.go +++ b/ziti/cmd/demo/zcat.go @@ -107,9 +107,8 @@ func (self *zcatAction) run(_ *cobra.Command, args []string) { addr = addr[atIdx+1:] } - zitiContext, err := ziti.NewContext(zitiConfig) - - if err != nil { + zitiContext, ctxErr := ziti.NewContext(zitiConfig) + if ctxErr != nil { pfxlog.Logger().WithError(err).Fatal("could not create sdk context from config") } diff --git a/ziti/tunnel/run.go b/ziti/tunnel/run.go index 55a2841b7..2f544015a 100644 --- a/ziti/tunnel/run.go +++ b/ziti/tunnel/run.go @@ -50,7 +50,7 @@ func run(cmd *cobra.Command, args []string) { _ = cmd.Flag("identity").Value.Set(args[0]) } - tProxyInterceptor, err = tproxy.New("") + tProxyInterceptor, err = tproxy.New(tproxy.Config{}) if err != nil { log.Infof("tproxy initialization failed: %v", err) } else { diff --git a/ziti/tunnel/tproxy.go b/ziti/tunnel/tproxy.go index 0b6994df1..05842777d 100644 --- a/ziti/tunnel/tproxy.go +++ b/ziti/tunnel/tproxy.go @@ -48,7 +48,7 @@ func runTProxy(cmd *cobra.Command, _ []string) error { return err } - interceptor, err = tproxy.New(lanIf) + interceptor, err = tproxy.New(tproxy.Config{LanIf: lanIf}) if err != nil { return fmt.Errorf("failed to initialize tproxy interceptor: %v", err) } From a5a2654ef6543987f55481184cad09af5e0d1f2b Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Thu, 25 May 2023 10:33:05 -0400 Subject: [PATCH 50/51] Update for library updates. Only use tls er urls for tunnel --- common/enrollment/enroll.go | 8 ++--- go.mod | 31 +++++++++---------- go.sum | 60 ++++++++++++++++++++----------------- ziti/tunnel/root.go | 4 +++ 4 files changed, 56 insertions(+), 47 deletions(-) diff --git a/common/enrollment/enroll.go b/common/enrollment/enroll.go index 89a1a7def..1ba66d9f9 100644 --- a/common/enrollment/enroll.go +++ b/common/enrollment/enroll.go @@ -19,6 +19,7 @@ package enrollment import ( "encoding/json" "fmt" + "github.com/openziti/identity/engines" "github.com/openziti/sdk-golang/ziti" "github.com/openziti/ziti/ziti/cmd/common" "io/ioutil" @@ -27,7 +28,6 @@ import ( "github.com/michaelquigley/pfxlog" "github.com/openziti/foundation/v2/term" - "github.com/openziti/identity/certtools" "github.com/openziti/sdk-golang/ziti/enroll" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -117,9 +117,9 @@ func NewEnrollCommand(p common.OptionsProvider) *cobra.Command { enrollSubCmd.Flags().VarP(&action.KeyAlg, "keyAlg", "a", "Crypto algorithm to use when generating private key") var keyDesc = "" - engines := certtools.ListEngines() - if len(engines) > 0 { - keyDesc = fmt.Sprintf("The key to use with the certificate. Optionally specify the engine to use. supported engines: %v", engines) + certEngines := engines.ListEngines() + if len(certEngines) > 0 { + keyDesc = fmt.Sprintf("The key to use with the certificate. Optionally specify the engine to use. supported engines: %v", certEngines) } else { keyDesc = "The key to use with the certificate." } diff --git a/go.mod b/go.mod index a8d48c470..b4a09ff32 100644 --- a/go.mod +++ b/go.mod @@ -20,17 +20,17 @@ require ( github.com/gorilla/websocket v1.5.0 github.com/jedib0t/go-pretty/v6 v6.4.0 github.com/michaelquigley/pfxlog v0.6.10 - github.com/openziti/agent v1.0.10 - github.com/openziti/channel/v2 v2.0.76 - github.com/openziti/edge v0.24.300 + github.com/openziti/agent v1.0.13 + github.com/openziti/channel/v2 v2.0.78 + github.com/openziti/edge v0.24.304 github.com/openziti/edge-api v0.25.24 - github.com/openziti/fabric v0.23.26 + github.com/openziti/fabric v0.23.27 github.com/openziti/foundation/v2 v2.0.24 - github.com/openziti/identity v1.0.53 - github.com/openziti/runzmd v1.0.21 - github.com/openziti/sdk-golang v0.20.46 + github.com/openziti/identity v1.0.54 + github.com/openziti/runzmd v1.0.24 + github.com/openziti/sdk-golang v0.20.49 github.com/openziti/storage v0.2.6 - github.com/openziti/transport/v2 v2.0.86 + github.com/openziti/transport/v2 v2.0.88 github.com/openziti/xweb/v2 v2.0.2 github.com/openziti/ziti-db-explorer v1.1.1 github.com/pkg/errors v0.9.1 @@ -73,7 +73,7 @@ require ( github.com/dgryski/dgoogauth v0.0.0-20190221195224-5a805980a5f3 // indirect github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663 // indirect github.com/disintegration/imaging v1.6.2 // indirect - github.com/dlclark/regexp2 v1.9.0 // indirect + github.com/dlclark/regexp2 v1.10.0 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect @@ -114,7 +114,7 @@ require ( github.com/josharian/native v1.1.0 // indirect github.com/kataras/go-events v0.0.3 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect - github.com/klauspost/compress v1.13.6 // indirect + github.com/klauspost/compress v1.16.5 // indirect github.com/kr/pty v1.1.8 // indirect github.com/kyokomi/emoji/v2 v2.2.12 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect @@ -123,7 +123,7 @@ require ( github.com/magiconair/properties v1.8.5 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.18 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/mdlayher/netlink v1.7.2 // indirect @@ -169,13 +169,14 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/yusufpapurcu/wmi v1.2.2 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect go.mongodb.org/mongo-driver v1.11.6 // indirect go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect - go.opentelemetry.io/otel v1.15.1 // indirect - go.opentelemetry.io/otel/trace v1.15.1 // indirect + go.opentelemetry.io/otel v1.16.0 // indirect + go.opentelemetry.io/otel/metric v1.16.0 // indirect + go.opentelemetry.io/otel/trace v1.16.0 // indirect golang.org/x/crypto v0.9.0 // indirect - golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect + golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect golang.org/x/image v0.7.0 // indirect golang.org/x/mod v0.8.0 // indirect golang.org/x/sync v0.2.0 // indirect diff --git a/go.sum b/go.sum index 2d9158ef9..7964ae1f2 100644 --- a/go.sum +++ b/go.sum @@ -191,8 +191,8 @@ github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1 github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.9.0 h1:pTK/l/3qYIKaRXuHnEnIf7Y5NxfRPfpb7dis6/gdlVI= -github.com/dlclark/regexp2 v1.9.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dlclark/regexp2 v1.10.0 h1:+/GIL799phkJqYW+3YbOd8LCcbHzT0Pbo8zl70MHsq0= +github.com/dlclark/regexp2 v1.10.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnsimple/dnsimple-go v0.63.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= @@ -549,8 +549,9 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= +github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kolo/xmlrpc v0.0.0-20200310150728-e0350524596b/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -624,8 +625,8 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= @@ -718,36 +719,36 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openziti/agent v1.0.10 h1:9oTmNXghlggD+O7BJdBp3PkD5kAZ1ssSC6IHZkMakzQ= -github.com/openziti/agent v1.0.10/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= -github.com/openziti/channel/v2 v2.0.76 h1:/fopm40/Pu1BKXpSggumZ6FexqDEaS0de+UsNCnegbU= -github.com/openziti/channel/v2 v2.0.76/go.mod h1:AG43uiANCWhVwM4BMYPJES9J4KCa3vHg9QPJjHDRqPI= +github.com/openziti/agent v1.0.13 h1:RptJCEANPb904cDqlP7IYfBI+he8EyosimYhG7bp9D0= +github.com/openziti/agent v1.0.13/go.mod h1:CRbwhhnpsoDw0BxZsCRyQUozoRnGzH7+wuQVp1h4qX8= +github.com/openziti/channel/v2 v2.0.78 h1:zY6olGzk0i7RdwnQQYV4J3aJmtuWqpTNUpbCKrghdFA= +github.com/openziti/channel/v2 v2.0.78/go.mod h1:yajD/OlGYESMURbogY+myEUZ49fWERPbIhU6kcDnQHE= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= -github.com/openziti/edge v0.24.300 h1:5R7kkCNDYpt/Esw8AHAA1dF7VY9ZrIyUx8sszOgLEUE= -github.com/openziti/edge v0.24.300/go.mod h1:h/lSg5SRynDTuLNDOSAFWGdmaIyMRzbPSGA2CElfxA4= +github.com/openziti/edge v0.24.304 h1:ktxsiU/ykZlP+IaQpDbF2fsMVigi53IoXu60tzcBUMo= +github.com/openziti/edge v0.24.304/go.mod h1:lfw3H/8gzuTdfkJ9HkKTMbwtRzUuBTfzLJTfQkxNu6o= github.com/openziti/edge-api v0.25.24 h1:XrF3AtF9mnJXgG7rSV2M50Dj/EKUkBUaDdb9/n2TDHI= github.com/openziti/edge-api v0.25.24/go.mod h1:rmEkj8jAkBTUhhgE/GFXije6bpFbd2P9TzdxTqZlXI8= -github.com/openziti/fabric v0.23.26 h1:wEPNh8m3qcq9sw1Zmg5YgFZw1FovsKGu53rRf8qzI7A= -github.com/openziti/fabric v0.23.26/go.mod h1:0MtkZqIHs3cJPP4DB88xsWUemDm77nN/GvWBBfq7peo= +github.com/openziti/fabric v0.23.27 h1:xD2A46a4pc/pZZvOuWrIosOecHL+orNQuF5JVsEiJlc= +github.com/openziti/fabric v0.23.27/go.mod h1:OTJncC5IA56+Fa/L80jyxZZ1tR0rkRc/hxSbbrLs5UQ= github.com/openziti/foundation/v2 v2.0.24 h1:cNJCbh4o9E+7mtSUDo7ZBuMoPjJAilDWgr7X8ntRz/Q= github.com/openziti/foundation/v2 v2.0.24/go.mod h1:H0w/ldKyE0ynwpIwt68k2rhMwt874IVxPQcimMuHJ3s= -github.com/openziti/identity v1.0.53 h1:w28wBcuiT8RlLjfcVgcqz0povQgfibj7zwS6OeLGSpI= -github.com/openziti/identity v1.0.53/go.mod h1:ZhMiSF9okmA781kFl0m4BkeyAmf3XA20h1Dh1oz480I= +github.com/openziti/identity v1.0.54 h1:1O/i3hnm5oCuHlOXesx4+aC2bXeTGoT+Rg1l2xZF14Y= +github.com/openziti/identity v1.0.54/go.mod h1:ZhMiSF9okmA781kFl0m4BkeyAmf3XA20h1Dh1oz480I= github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc= github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ= github.com/openziti/metrics v1.2.25 h1:acD/J/DcWgfbhmKS/s3HDvpt/1WS3QBZPeeGBZHbj94= github.com/openziti/metrics v1.2.25/go.mod h1:s2r1FS+wUdJ3LXp1qJK6777iQ8gPWXE2HFfDsiJo1/Y= -github.com/openziti/runzmd v1.0.21 h1:kdrXaWbQrXlsvCCQKI/MoYoFDmgR9D79aqayQ6Ku5U0= -github.com/openziti/runzmd v1.0.21/go.mod h1:tdNzEYSzMYw1ZEQ2drMdqNUUDdApcE/KZDQGkl1yGFU= -github.com/openziti/sdk-golang v0.20.46 h1:BKKSpMjmWGg7Ei9w1GSUWiDQjVY3EmsvgP/eSNLu5Zo= -github.com/openziti/sdk-golang v0.20.46/go.mod h1:haDZM4tr6FWN2+Klht8vpGIMiFvEoClIaXvCcq97ehM= +github.com/openziti/runzmd v1.0.24 h1:jSwfqpA6SLCtpDUzdQl92gECc08itE8eFeHYdaJu4tY= +github.com/openziti/runzmd v1.0.24/go.mod h1:NX3EPWMDZPIPNUztDOkLrV6akqdC/P/X0UUeAL63V58= +github.com/openziti/sdk-golang v0.20.49 h1:Ci/t+vod43aQF66wuIVYJBHPsNkeUllQ/6deXPpoAgY= +github.com/openziti/sdk-golang v0.20.49/go.mod h1:TJO7F1mFfWX2p6kCBtIx+7jS+kwX01ZkkxsZQxDJwCE= github.com/openziti/secretstream v0.1.8 h1:AgPHLDuXTiM1apHQmBvwvSW1vbQqAm7wUJDHqkQ/6Nk= github.com/openziti/secretstream v0.1.8/go.mod h1:qcF8EmSX5SAT8k2pzsDI4bWugopv9AA+ltgWDrcAAEw= github.com/openziti/storage v0.2.6 h1:/pbIRzDwrczMWRVkN75PfwAXFbArplIqhpRsUrsUOBc= github.com/openziti/storage v0.2.6/go.mod h1:JnjCofrnPcajwn6VIB2CgI7pVVUFBL7evbezIsQ4AgA= -github.com/openziti/transport/v2 v2.0.86 h1:IU53/XCpEUES7TabMrWrYPHsiDD5AzBxeSZk3nO1SI8= -github.com/openziti/transport/v2 v2.0.86/go.mod h1:ausyIxIQ4u+XeezXLo/nqJYQxO1AEf0APDrW0G1Hp6c= +github.com/openziti/transport/v2 v2.0.88 h1:K2kIrDInbjFqXvzPg+EkyYZkUiy8rEkBnYRKshELuho= +github.com/openziti/transport/v2 v2.0.88/go.mod h1:1eh1lpeIvB3KgyEC+OykpLa8Dj2AUC5921iOd2ovkwE= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= @@ -982,8 +983,9 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1007,11 +1009,13 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/otel v1.15.1 h1:3Iwq3lfRByPaws0f6bU3naAqOR1n5IeDWd9390kWHa8= -go.opentelemetry.io/otel v1.15.1/go.mod h1:mHHGEHVDLal6YrKMmk9LqC4a3sF5g+fHfrttQIB1NTc= +go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s= +go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4= +go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo= +go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4= go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= -go.opentelemetry.io/otel/trace v1.15.1 h1:uXLo6iHJEzDfrNC0L0mNjItIp06SyaBQxu5t3xMlngY= -go.opentelemetry.io/otel/trace v1.15.1/go.mod h1:IWdQG/5N1x7f6YUlmdLeJvH9yxtuJAfc4VW5Agv9r/8= +go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs= +go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1062,8 +1066,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= -golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 h1:k/i9J1pBpvlfR+9QsetwPyERsqu1GIbi967PQMq3Ivc= +golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= diff --git a/ziti/tunnel/root.go b/ziti/tunnel/root.go index 9716915d5..4f7d51b3b 100644 --- a/ziti/tunnel/root.go +++ b/ziti/tunnel/root.go @@ -23,6 +23,7 @@ import ( "github.com/openziti/ziti/ziti/util" "os" "path/filepath" + "strings" "time" "github.com/michaelquigley/pfxlog" @@ -188,6 +189,9 @@ func startIdentity(cmd *cobra.Command, serviceListenerGroup *intercept.ServiceLi serviceListener.HandleProviderReady(tunnel.NewContextProvider(ctx)) }, OnServiceUpdate: serviceListener.HandleServicesChange, + EdgeRouterUrlFilter: func(url string) bool { + return strings.HasPrefix(url, "tls:") + }, } rootPrivateContext, err := ziti.NewContextWithOpts(zitiCfg, options) From 147d0b9c2da59e2fb7f7dfa0a7a7d5ec0efead62 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Thu, 25 May 2023 16:12:36 -0400 Subject: [PATCH 51/51] Update changelog and deps --- CHANGELOG.md | 52 +++++++++++++++++++++++++++++++++++++++------------- go.mod | 6 +++--- go.sum | 12 ++++++------ 3 files changed, 48 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 628acd157..881899f4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ * `-k/--client-key` allows a key to be supplied to login (used with `-c/--client-cert`) * Config type changes * address fields in `intercept.v1`, `host.v1`, and `host.v2` config types now permit hostnames with underscores. +* Edge Router/Tunneler now supports setting default UDP idle timeout/check interval ## Event Changes @@ -181,19 +182,40 @@ Example output: } ``` -## Component Updates and Bug Fixes +## ER/T UDP Settings + +The edge router tunneler now allows configuring a timeout and check interval for tproxy UDP intercepts. By default intercepted UDP +connections will be closed after five minutes of no traffic, checking every thirty seconds. The configuration is done in the router +config file, in the options for the tunnel module. Note that these configuration options only apply to tproxy intercepts, not to +proxy or host side UDP connections. + +Example configuration: -* github.com/openziti/channel/v2: [v2.0.58 -> v2.0.64](https://github.com/openziti/channel/compare/v2.0.58...v2.0.64) +```yaml +listeners: + - binding: tunnel + options: + mode: tproxy + udpIdleTimeout: 10s + udpCheckInterval: 5s +``` + +## Component Updates and Bug Fixes +* github.com/openziti/agent: [v1.0.10 -> v1.0.13](https://github.com/openziti/agent/compare/v1.0.10...v1.0.13) +* github.com/openziti/channel/v2: [v2.0.58 -> v2.0.78](https://github.com/openziti/channel/compare/v2.0.58...v2.0.78) * [Issue #98](https://github.com/openziti/channel/issues/98) - Set default connect timeout to 5 seconds -* github.com/openziti/edge: [v0.24.239 -> v0.24.300](https://github.com/openziti/edge/compare/v0.24.239...v0.24.300) +* github.com/openziti/edge: [v0.24.239 -> v0.24.309](https://github.com/openziti/edge/compare/v0.24.239...v0.24.309) + * [Issue #1503](https://github.com/openziti/edge/issues/1503) - Support configurable UDP idle timeout and check interval for tproxy in edge router tunneler * [Issue #1471](https://github.com/openziti/edge/issues/1471) - UDP intercept connections report incorrect local/remote addresses, making confusing events * [Issue #629](https://github.com/openziti/edge/issues/629) - emit entity change events * [Issue #1295](https://github.com/openziti/edge/issues/1295) - Ensure DB migrations work properly in a clustered setup (edge) * [Issue #1418](https://github.com/openziti/edge/issues/1418) - Checks for session edge router availablility are inefficient -* github.com/openziti/edge-api: [v0.25.11 -> v0.25.18](https://github.com/openziti/edge-api/compare/v0.25.11...v0.25.18) -* github.com/openziti/fabric: [v0.22.87 -> v0.23.11](https://github.com/openziti/fabric/compare/v0.22.87...v0.23.11) +* github.com/openziti/edge-api: [v0.25.11 -> v0.25.24](https://github.com/openziti/edge-api/compare/v0.25.11...v0.25.24) +* github.com/openziti/fabric: [v0.22.87 -> v0.23.29](https://github.com/openziti/fabric/compare/v0.22.87...v0.23.29) + * [Issue #724](https://github.com/openziti/fabric/issues/724) - Controller should be notified of forwarding faults on links + * [Issue #725](https://github.com/openziti/fabric/issues/725) - If reroute fails, circuit should be torn down * [Issue #706](https://github.com/openziti/fabric/issues/706) - Fix panic in link close * [Issue #700](https://github.com/openziti/fabric/issues/700) - Additional Health Checks exposed on Edge Router * [Issue #595](https://github.com/openziti/fabric/issues/595) - Add include filtering for V3 usage metrics @@ -203,15 +225,19 @@ Example output: * [Issue #582](https://github.com/openziti/fabric/issues/582) - Ensure DB migrations work properly in a clustered setup (fabric) * [Issue #668](https://github.com/openziti/fabric/issues/668) - Add network.Run watchdog, to warn if processing is delayed -* github.com/openziti/foundation/v2: [v2.0.21 -> v2.0.22](https://github.com/openziti/foundation/compare/v2.0.21...v2.0.22) -* github.com/openziti/identity: [v1.0.45 -> v1.0.48](https://github.com/openziti/identity/compare/v1.0.45...v1.0.48) -* github.com/openziti/runzmd: [v1.0.20 -> v1.0.21](https://github.com/openziti/runzmd/compare/v1.0.20...v1.0.21) -* github.com/openziti/sdk-golang: [v0.18.76 -> v0.20.20](https://github.com/openziti/sdk-golang/compare/v0.18.76...v0.20.20) -* github.com/openziti/storage: [v0.1.49 -> v0.2.2](https://github.com/openziti/storage/compare/v0.1.49...v0.2.2) -* github.com/openziti/transport/v2: [v2.0.72 -> v2.0.77](https://github.com/openziti/transport/compare/v2.0.72...v2.0.77) -* github.com/openziti/metrics: [v1.2.19 -> v1.2.21](https://github.com/openziti/metrics/compare/v1.2.19...v1.2.21) -* github.com/openziti/secretstream: v0.1.7 (new) +* github.com/openziti/foundation/v2: [v2.0.21 -> v2.0.24](https://github.com/openziti/foundation/compare/v2.0.21...v2.0.24) +* github.com/openziti/identity: [v1.0.45 -> v1.0.54](https://github.com/openziti/identity/compare/v1.0.45...v1.0.54) +* github.com/openziti/runzmd: [v1.0.20 -> v1.0.24](https://github.com/openziti/runzmd/compare/v1.0.20...v1.0.24) +* github.com/openziti/sdk-golang: [v0.18.76 -> v0.20.51](https://github.com/openziti/sdk-golang/compare/v0.18.76...v0.20.51) + * [Issue #407](https://github.com/openziti/sdk-golang/issues/407) - Allowing filtering which edge router urls the sdk uses + * [Issue #394](https://github.com/openziti/sdk-golang/issues/394) - SDK does not recover from API session expiration (during app/computer suspend) + +* github.com/openziti/storage: [v0.1.49 -> v0.2.6](https://github.com/openziti/storage/compare/v0.1.49...v0.2.6) +* github.com/openziti/transport/v2: [v2.0.72 -> v2.0.88](https://github.com/openziti/transport/compare/v2.0.72...v2.0.88) +* github.com/openziti/metrics: [v1.2.19 -> v1.2.25](https://github.com/openziti/metrics/compare/v1.2.19...v1.2.25) +* github.com/openziti/secretstream: v0.1.8 (new) * github.com/openziti/ziti: [v0.27.9 -> v0.28.0](https://github.com/openziti/ziti/compare/v0.27.9...v0.28.0) + * [Issue #1112](https://github.com/openziti/ziti/issues/1112) - `ziti pki create` creates CA's and intermediates w/ the same DN * [Issue #1087](https://github.com/openziti/ziti/issues/1087) - re-enable CI in forks * [Issue #1013](https://github.com/openziti/ziti/issues/1013) - docker env password is renewed at each `docker-compose up` * [Issue #1077](https://github.com/openziti/ziti/issues/1077) - Show auth-policy name on identity list instead of id diff --git a/go.mod b/go.mod index b4a09ff32..726e1bf45 100644 --- a/go.mod +++ b/go.mod @@ -22,13 +22,13 @@ require ( github.com/michaelquigley/pfxlog v0.6.10 github.com/openziti/agent v1.0.13 github.com/openziti/channel/v2 v2.0.78 - github.com/openziti/edge v0.24.304 + github.com/openziti/edge v0.24.309 github.com/openziti/edge-api v0.25.24 - github.com/openziti/fabric v0.23.27 + github.com/openziti/fabric v0.23.29 github.com/openziti/foundation/v2 v2.0.24 github.com/openziti/identity v1.0.54 github.com/openziti/runzmd v1.0.24 - github.com/openziti/sdk-golang v0.20.49 + github.com/openziti/sdk-golang v0.20.51 github.com/openziti/storage v0.2.6 github.com/openziti/transport/v2 v2.0.88 github.com/openziti/xweb/v2 v2.0.2 diff --git a/go.sum b/go.sum index 7964ae1f2..8a255f275 100644 --- a/go.sum +++ b/go.sum @@ -725,12 +725,12 @@ github.com/openziti/channel/v2 v2.0.78 h1:zY6olGzk0i7RdwnQQYV4J3aJmtuWqpTNUpbCKr github.com/openziti/channel/v2 v2.0.78/go.mod h1:yajD/OlGYESMURbogY+myEUZ49fWERPbIhU6kcDnQHE= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= -github.com/openziti/edge v0.24.304 h1:ktxsiU/ykZlP+IaQpDbF2fsMVigi53IoXu60tzcBUMo= -github.com/openziti/edge v0.24.304/go.mod h1:lfw3H/8gzuTdfkJ9HkKTMbwtRzUuBTfzLJTfQkxNu6o= +github.com/openziti/edge v0.24.309 h1:EGZZ7GqI6/2y8zoNc0Tb11DpHtDG3YTNMUChulFTDL4= +github.com/openziti/edge v0.24.309/go.mod h1:UDlCvgpuzQ6FFugSK0Sim7214c1O+7ahiOX5tvhJaP4= github.com/openziti/edge-api v0.25.24 h1:XrF3AtF9mnJXgG7rSV2M50Dj/EKUkBUaDdb9/n2TDHI= github.com/openziti/edge-api v0.25.24/go.mod h1:rmEkj8jAkBTUhhgE/GFXije6bpFbd2P9TzdxTqZlXI8= -github.com/openziti/fabric v0.23.27 h1:xD2A46a4pc/pZZvOuWrIosOecHL+orNQuF5JVsEiJlc= -github.com/openziti/fabric v0.23.27/go.mod h1:OTJncC5IA56+Fa/L80jyxZZ1tR0rkRc/hxSbbrLs5UQ= +github.com/openziti/fabric v0.23.29 h1:FbAeUhfkNGYPNCYo3BFzRByvMTKhscxJEQxYU0BJJdA= +github.com/openziti/fabric v0.23.29/go.mod h1:/M8URo+qloi39qG0QWvXTgtpiPPneNYOjR+VvywS0cw= github.com/openziti/foundation/v2 v2.0.24 h1:cNJCbh4o9E+7mtSUDo7ZBuMoPjJAilDWgr7X8ntRz/Q= github.com/openziti/foundation/v2 v2.0.24/go.mod h1:H0w/ldKyE0ynwpIwt68k2rhMwt874IVxPQcimMuHJ3s= github.com/openziti/identity v1.0.54 h1:1O/i3hnm5oCuHlOXesx4+aC2bXeTGoT+Rg1l2xZF14Y= @@ -741,8 +741,8 @@ github.com/openziti/metrics v1.2.25 h1:acD/J/DcWgfbhmKS/s3HDvpt/1WS3QBZPeeGBZHbj github.com/openziti/metrics v1.2.25/go.mod h1:s2r1FS+wUdJ3LXp1qJK6777iQ8gPWXE2HFfDsiJo1/Y= github.com/openziti/runzmd v1.0.24 h1:jSwfqpA6SLCtpDUzdQl92gECc08itE8eFeHYdaJu4tY= github.com/openziti/runzmd v1.0.24/go.mod h1:NX3EPWMDZPIPNUztDOkLrV6akqdC/P/X0UUeAL63V58= -github.com/openziti/sdk-golang v0.20.49 h1:Ci/t+vod43aQF66wuIVYJBHPsNkeUllQ/6deXPpoAgY= -github.com/openziti/sdk-golang v0.20.49/go.mod h1:TJO7F1mFfWX2p6kCBtIx+7jS+kwX01ZkkxsZQxDJwCE= +github.com/openziti/sdk-golang v0.20.51 h1:oVqo9kyh8OKtAAX4yrJIJa5nn6qZDvpfUqOlBPnqb14= +github.com/openziti/sdk-golang v0.20.51/go.mod h1:Ecgf8vgPSLOP7EgQgb3juv2UwsKbu37G1NHSqioTUCs= github.com/openziti/secretstream v0.1.8 h1:AgPHLDuXTiM1apHQmBvwvSW1vbQqAm7wUJDHqkQ/6Nk= github.com/openziti/secretstream v0.1.8/go.mod h1:qcF8EmSX5SAT8k2pzsDI4bWugopv9AA+ltgWDrcAAEw= github.com/openziti/storage v0.2.6 h1:/pbIRzDwrczMWRVkN75PfwAXFbArplIqhpRsUrsUOBc=