From d16ec86d1091abb3a3dfba0987caf6d4b118c7b1 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Fri, 12 Apr 2024 20:18:25 -0400 Subject: [PATCH 01/72] de-hyphenate old mentions of ziti-controller as 'ziti controller' --- controller/server/controller.go | 2 +- controller/subcmd/init.go | 4 ++-- doc/001-overview.md | 34 ++++++++++++++++----------------- doc/002-local-dev.md | 13 ++++--------- doc/ops-agent.md | 4 ++-- quickstart/README.md | 33 ++++++++++++++++---------------- 6 files changed, 42 insertions(+), 48 deletions(-) diff --git a/controller/server/controller.go b/controller/server/controller.go index 1526d2def..8c61349c9 100644 --- a/controller/server/controller.go +++ b/controller/server/controller.go @@ -321,7 +321,7 @@ func (c *Controller) checkEdgeInitialized() { if admin == nil { if !c.AppEnv.GetHostController().IsRaftEnabled() { - log.Fatal("the Ziti Edge has not been initialized via 'ziti-controller edge init', no default admin exists") + log.Fatal("the Ziti Edge has not been initialized via 'ziti controller edge init', no default admin exists") } if first { diff --git a/controller/subcmd/init.go b/controller/subcmd/init.go index e9f6da1ce..214a59379 100644 --- a/controller/subcmd/init.go +++ b/controller/subcmd/init.go @@ -63,10 +63,10 @@ func NewEdgeInitializeCmd(versionProvider versions.VersionProvider) *cobra.Comma cmd := &cobra.Command{ Use: "init [-p]", Aliases: []string{"initialize"}, - Example: "ziti-controller edge init controller.yml -u admin -p o93wjh5n", + Example: "ziti controller edge init controller.yml -u admin -p o93wjh5n", Args: func(cmd *cobra.Command, args []string) error { if len(args) != 1 { - return errors.New("config file not specified: ziti-controller edge init ") + return errors.New("config file not specified: ziti controller edge init ") } return nil diff --git a/doc/001-overview.md b/doc/001-overview.md index 577e207f8..ab88fce7c 100644 --- a/doc/001-overview.md +++ b/doc/001-overview.md @@ -17,11 +17,11 @@ and management of endpoints that make use of the Ziti SDK. The Ziti SDK can be b ingress and egress to the Ziti overlay network as well as to provide application specific networking to an individual application. Enabling the Edge features is optional. -Both the Fabric and Edge features are built into the ziti-controller and ziti-router binaries. +Both the Fabric and Edge features are built into the ziti binary. ## Ziti Controller -The Ziti Controller (ziti-controller) is the main server component of a Ziti environment. It is the first piece of Ziti +The Ziti Controller is the main server component of a Ziti environment. It is the first piece of Ziti that must be setup and configured. The controller houses all the router, service, and management data necessary to run a Ziti environment. There is one, and only one, controller per Ziti environment. @@ -49,29 +49,28 @@ Below is an outline of all the applications that are generated from this reposit The following binaries are used to deploy long running servers that route traffic and manage the configuration of a Ziti environment. -| Binary Name | Description| +| Command | Description| |-------------------| -----------| -| ziti-controller | Runs a central server necessary for Ziti environments| -| ziti-router | Runs a server capable of ingress'ing and egress'ing Ziti traffic standalone or as a mesh| +| ziti controller | Runs a central server necessary for Ziti environments| +| ziti router | Runs a server capable of ingress'ing and egress'ing Ziti traffic standalone or as a mesh| ### Tools -The following binaries provide utility or testing functionality. +The following commands provide utility or testing functionality. -| Binary Name | Description| +| Command | Description| |-------------------| -----------| -| ziti-enroller | Provides enrollment processing features for executables that do not directly support enrollment -| ziti-fabric-gw | Provides JSON RCP web service access to Ziti fabric management features -| ziti-fabric-test | The Ziti Fabric Toolbox which is used to test deployed fabric components| +| ziti edge enroll | Provides enrollment processing features for executables that do not directly support enrollment| +| ziti fabric inspect | Observe Ziti Fabric runtime values | ### Management The following binaries are used to configure and manage a Ziti environment via command line interactions. -| Binary Name | Description| +| Command | Description| |-------------------| -----------| -| ziti-fabric | Provides command line access to Ziti Fabric management features| -| ziti | Provides command line access to Ziti management features| +| ziti fabric | Provides command line access to Ziti Fabric management features| +| ziti edge | Provides command line access to Ziti management features| ## Endpoint Clients @@ -79,12 +78,13 @@ The following binaries are Ziti endpoint clients which have the Ziti SDK built i edge router. Endpoint clients can be application specific or act as a bridge to other applications, hosts, or underlay networks. -| Binary Name | Description| +| Command | Description| |-------------------| -----------| -| ziti-tunnel | Provides the ability to intercept traffic to route traffic across Ziti| +| ziti tunnel | Provides the ability to intercept traffic to route traffic across Ziti| -All of the above binaries are cross platform compatible, except ziti-tunnel which is currently Linux only. +All of the above binaries are cross platform compatible, except `ziti tunnel` which is currently Linux-only. ## Further Exploration -Continue your OpenZiti exploration in [the next article about getting set up for local development](./002-local-dev.md) and building the apps from source. +Continue your OpenZiti exploration in [the next article about getting set up for local development](./002-local-dev.md) +and building the apps from source. diff --git a/doc/002-local-dev.md b/doc/002-local-dev.md index 4189e5fba..25782443f 100644 --- a/doc/002-local-dev.md +++ b/doc/002-local-dev.md @@ -12,7 +12,7 @@ grep -Po '^go\s+\K\d+\.\d+(\.\d+)?$' go.mod ## Build and Install All Applications -This repo contains several Go applications, e.g. ziti-controller, ziti-router. These applications were reorganized as subcommands of the `ziti` CLI application, so it's no longer necessary to build the discrete binaries. Only the `ziti` CLI is necessary. The easiest way to build and install `ziti` in `${GOPATH}/bin` is: +This repo contains one main Go application, i.e. `ziti` with many subcommands. The easiest way to build and install `ziti` in `${GOPATH}/bin` is: ```bash # build and install ziti CLI @@ -23,20 +23,15 @@ If you add `${GOPATH}/bin` to your executable search `${PATH}` then you may imme ```bash $ ziti version -NAME VERSION -ziti v0.0.0 -ziti-controller not installed -ziti-prox-c not installed -ziti-router not installed -ziti-tunnel not installed -ziti-edge-tunnel v0.20.18-local +v0.0.0 ``` -## Build ziti CLI +## Save Build Artifact Elsewhere ```bash # build the binary without installing in GOPATH go build -o ./build/ziti ./ziti/ + # execute the binary ./build/ziti version ``` diff --git a/doc/ops-agent.md b/doc/ops-agent.md index fd66c5668..ca2ba2e6f 100644 --- a/doc/ops-agent.md +++ b/doc/ops-agent.md @@ -64,8 +64,8 @@ Use unix sockets to limit security risk. Only the user on the machine who starte Examples: -1. `ziti-controller --cli-agent-addr unix:/tmp/my-special-agent-file.sock` -2. `ziti-controller --cli-agent-addr tcp:127.0.0.1:10001` +1. `ziti controller --cli-agent-addr unix:/tmp/my-special-agent-file.sock` +2. `ziti controller --cli-agent-addr tcp:127.0.0.1:10001` ### Disabling the Agent diff --git a/quickstart/README.md b/quickstart/README.md index 2c67ed53a..156f1b73f 100644 --- a/quickstart/README.md +++ b/quickstart/README.md @@ -6,27 +6,27 @@ simple networks. As with any solution it is common for additional changes to the after expanding beyond the initial setup. There are three different modes contained in these folders. One mode allows you very quickly get setup and -run the two main components of a OpenZiti network: ziti-controller and ziti-router. The [Express](#express) +run the two main components of a OpenZiti network: ziti-controller and ziti-router. The [Express](#express) configuration will guide you here. The remaining two modes all use [docker](https://docs.docker.com/get-started/) to establish environments. The first of the docker-based quickstarts uses [docker-compose](https://docs.docker.com/compose/). You will find a fully defined OpenZiti Network in a compose file which should allow you to understand better and learn how multiple routers can be linked to form a mesh network or serve as an initial -template to build your own compose file from. +template to build your own compose file. Lastly, you can choose to run [docker](https://docs.docker.com/get-started/) directly. This mode is necessarily more verbose but should you prefer to not use docker-compose it can also illustrate how to establish -a OpenZiti Network piece by piece. +an OpenZiti Network piece by piece. ## Prerequisites ### Bash -All of these quickstarts will use bash. On MacOS/linux this will be natural however on Windows you'll want +All of these quickstarts will use bash. On MacOS/Linux this will be natural however on Windows you'll want to ensure you have a suitable shell. There are numerous shells available but perhaps the simplest will be -to use [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl/install-win10). You -might also use git-bash, cygwin, or any other bash shell you fancy. +to use [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl/install-win10). You +might also use git-bash, Cygwin, or any other bash shell you fancy. ### Docker/Docker Compose @@ -51,40 +51,39 @@ The express install script will do quite a few things to get you bootstrapped. 1. create a full suite of PKI 1. create a config file for the controller 1. create a config file for an edge router -1. download the latest distribution of ziti from github.com/openziti/ziti/releases +1. download the latest distribution of Ziti from github.com/openziti/ziti/releases 1. unzip the distribution -1. start the `ziti-controller` and `ziti-router` executables -1. the `ziti-controller` should now be exposed on https://$(hostname):1280 +1. start the controller and router in the background +1. expose the controller on https://$(hostname):1280 ## Docker - Compose -The [docker-compose](https://docs.docker.com/compose/) based example will create numerous `ziti-router`s +The [docker-compose](https://docs.docker.com/compose/) based example will create numerous `ziti-router`s as well as spooling up a `ziti-controller` and expose the controller on port 1280. This configuration is intended to look and feel like the following image: ![image info](./docker-compose-nw.svg) Here, a simple OpenZiti Network is shown which contains two public OpenZiti Edge Routers, one router without the "edge" enabled and usable only for transit, and two private edge routers: one blue, one red. The goal with this setup is to attempt to -have a single isolated service that is not accessible from outside of the blue network (as best as possible with +have a single isolated service that is not accessible from outside of the blue network (as best as possible with only docker). ## Docker - No Compose -You can still startup a dev environment easily with [docker](https://docs.docker.com/get-started/) only. In this example -you will start a OpenZiti Controller as well as a single OpenZiti Edge Router. +You can still start up a dev environment easily with [docker](https://docs.docker.com/get-started/) only. In this example, +you will start an OpenZiti Controller as well as a single OpenZiti Edge Router. ### Prerequisite -Since the openziti project is all about creating overlay networks - it's important for the docker containers to be -able to communicate to one another. This is accomplished using a docker network and setting the alias of the container -on that docker network. +The Docker containers must be able to communicate with one another. This is accomplished using a Docker network and +setting the alias of the container on that Docker network. Before running the commands below please do the following: #declare a variable that defines the 'network' zitinw="myZitiNetwork" - #declare a fully qualified path to the location you want your shared files to go and create it + #declare a fully qualified path to the location that you want your shared files to go and create it zitinw_shared="${HOME}/.ziti/dockerenvs/${zitinw}" mkdir -p "${zitinw_shared}" From 0f84d7c7d76bee9decacb48cd0b822ea9b9ef0dc Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 22 Apr 2024 17:13:36 -0400 Subject: [PATCH 02/72] direct quickstart readers to ziti-doc --- changelogs/CHANGELOG.0.30.md | 2 +- dist/docker-images/ziti-controller/.env | 2 + .../ziti-controller/compose.override.yml | 3 + dist/docker-images/ziti-router/.env | 3 + doc/001-overview.md | 8 +- doc/002-local-dev.md | 10 -- quickstart/README.md | 140 +----------------- 7 files changed, 14 insertions(+), 154 deletions(-) create mode 100644 dist/docker-images/ziti-controller/.env create mode 100644 dist/docker-images/ziti-controller/compose.override.yml create mode 100644 dist/docker-images/ziti-router/.env diff --git a/changelogs/CHANGELOG.0.30.md b/changelogs/CHANGELOG.0.30.md index 31f5384d5..1ad35f644 100644 --- a/changelogs/CHANGELOG.0.30.md +++ b/changelogs/CHANGELOG.0.30.md @@ -43,7 +43,7 @@ Currently only HTTP Connect proxies which don't require authentication are suppo not create the usual edge router/service edge router policy. * [Issue #1397](https://github.com/openziti/ziti/issues/1397) - HTTP Proxy support for host.v1/host.v2 config types * [Issue #1423](https://github.com/openziti/ziti/issues/1423) - Controller crashes when edge router reconnects (Client Hello) - * [Issue #1414](https://github.com/openziti/ziti/issues/1414) - Race condition in xgress_edge_tunnel tunneller at start but not seen in pre-compiled binary + * [Issue #1414](https://github.com/openziti/ziti/issues/1414) - Race condition in xgress_edge_tunnel tunneler at start but not seen in pre-compiled binary * [Issue #1406](https://github.com/openziti/ziti/issues/1406) - Entity change event dispatcher isn't shutting down properly when controller shuts down * [Issue #1382](https://github.com/openziti/ziti/issues/1382) - service failure costs are not shrinking over time diff --git a/dist/docker-images/ziti-controller/.env b/dist/docker-images/ziti-controller/.env new file mode 100644 index 000000000..a26307e74 --- /dev/null +++ b/dist/docker-images/ziti-controller/.env @@ -0,0 +1,2 @@ +ZITI_PWD=admin +ZITI_CTRL_ADVERTISED_ADDRESS=ctrl.127.0.0.1.sslip.io diff --git a/dist/docker-images/ziti-controller/compose.override.yml b/dist/docker-images/ziti-controller/compose.override.yml new file mode 100644 index 000000000..b15aabc00 --- /dev/null +++ b/dist/docker-images/ziti-controller/compose.override.yml @@ -0,0 +1,3 @@ +services: + ziti-controller: + network_mode: host diff --git a/dist/docker-images/ziti-router/.env b/dist/docker-images/ziti-router/.env new file mode 100644 index 000000000..aa610dbc1 --- /dev/null +++ b/dist/docker-images/ziti-router/.env @@ -0,0 +1,3 @@ +ZITI_ENROLL_TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IjUyN2UwYzMwZjgyYTMwMmFmNzMzMDFiZmQwYjY5YjU4NTRlOTdmZmEiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2N0cmwuMTI3LjAuMC4xLnNzbGlwLmlvOjEyODAiLCJzdWIiOiJ0ZVRaa0NZcjB4IiwiYXVkIjpbIiJdLCJleHAiOjE3MTI5NDkwMzEsImp0aSI6IjVkYjAyNzg3LThiYjYtNGI3Ny05ODdiLWUzYTUxNDRjMTBkMSIsImVtIjoiZXJvdHQiLCJjdHJscyI6bnVsbH0.ch5Dp-IVmqmn4u9OtILVaeDBvEeURU8Nh0KRXK_Z8ELwgu7yQO29s2zULHtj5AAVdl6tGkyln3UaUw2rnl-TcjSbRQ2NHDw4fcpLsHEuVZn648ppuDG0UosQJYJX8FSuvCxuUVot7mUaRXgqYbrdPfX8norOJp8f-ZG14i8MOZjR8JH2E1Ye__swH_BZCZ2QJxmaI8-TyCtzS6shbrIv2xWIG_2lscB3_9JGqcFk5f_jNrn0Dc2mXrMwF8xzeoo-erM_DyqTmq63X73fHIZKKZtJGOR58E-1QF77255hcGs7NrhSAl3EPWpYh-mMg9Y13vViT_ann_KFIpiHntKnPwQptmATjrAMhlAsHu0ZOlM1mV0divxJIznBsgr8ESeefWoXWMquctRdiM3l1-7tD37wtlbwGT36azt3ezZkbnjnu9NREZCFRvAyZ_lFrByKv2k7pZrxGrby4pbqeE-1hI1PZabpGiwpa4DK2BPmiUMFQnN557ZzvJXCRn6ucF2h5keLN6sfg0gRSUP32jVZbbJBLGTbmAxpPzLsvo6CPRAtuAoS1vt7E9teSPCiCsfYsm8KRqXhoEHVjqMFexdtIVpWjpKiwToxlP9tXKgqCEVFXRc0b0OM6N3OIuQSJMWocwFIH8JKiXC9_CG9_ZK9kd1XGVRdwCDpUC0pUsA2fg0 +ZITI_CTRL_ADVERTISED_ADDRESS=ctrl.127.0.0.1.sslip.io +ZITI_ROUTER_ADVERTISED_ADDRESS=router1.127.0.0.1.sslip.io diff --git a/doc/001-overview.md b/doc/001-overview.md index ab88fce7c..1bf23faf1 100644 --- a/doc/001-overview.md +++ b/doc/001-overview.md @@ -49,7 +49,7 @@ Below is an outline of all the applications that are generated from this reposit The following binaries are used to deploy long running servers that route traffic and manage the configuration of a Ziti environment. -| Command | Description| +| Subcommand | Description| |-------------------| -----------| | ziti controller | Runs a central server necessary for Ziti environments| | ziti router | Runs a server capable of ingress'ing and egress'ing Ziti traffic standalone or as a mesh| @@ -58,7 +58,7 @@ configuration of a Ziti environment. The following commands provide utility or testing functionality. -| Command | Description| +| Subcommand | Description| |-------------------| -----------| | ziti edge enroll | Provides enrollment processing features for executables that do not directly support enrollment| | ziti fabric inspect | Observe Ziti Fabric runtime values | @@ -67,7 +67,7 @@ The following commands provide utility or testing functionality. The following binaries are used to configure and manage a Ziti environment via command line interactions. -| Command | Description| +| Subcommand | Description| |-------------------| -----------| | ziti fabric | Provides command line access to Ziti Fabric management features| | ziti edge | Provides command line access to Ziti management features| @@ -78,7 +78,7 @@ The following binaries are Ziti endpoint clients which have the Ziti SDK built i edge router. Endpoint clients can be application specific or act as a bridge to other applications, hosts, or underlay networks. -| Command | Description| +| Subcommand | Description| |-------------------| -----------| | ziti tunnel | Provides the ability to intercept traffic to route traffic across Ziti| diff --git a/doc/002-local-dev.md b/doc/002-local-dev.md index 25782443f..a4aa1fe0d 100644 --- a/doc/002-local-dev.md +++ b/doc/002-local-dev.md @@ -26,16 +26,6 @@ $ ziti version v0.0.0 ``` -## Save Build Artifact Elsewhere - -```bash -# build the binary without installing in GOPATH -go build -o ./build/ziti ./ziti/ - -# execute the binary -./build/ziti version -``` - ## Run a Local Ziti Stack Let's get a local Ziti stack up and running now that you have built and installed all the Ziti apps in this repo. diff --git a/quickstart/README.md b/quickstart/README.md index 156f1b73f..d7956bc3b 100644 --- a/quickstart/README.md +++ b/quickstart/README.md @@ -1,141 +1,3 @@ # Quickstart -This directory contains a set of scripts designed to make it easy to establish a starter overlay network. -The expectation is that these scripts and docker image are useful for learning or for establishing -simple networks. As with any solution it is common for additional changes to the configuration to be required -after expanding beyond the initial setup. - -There are three different modes contained in these folders. One mode allows you very quickly get setup and -run the two main components of a OpenZiti network: ziti-controller and ziti-router. The [Express](#express) -configuration will guide you here. - -The remaining two modes all use [docker](https://docs.docker.com/get-started/) to establish environments. -The first of the docker-based quickstarts uses [docker-compose](https://docs.docker.com/compose/). -You will find a fully defined OpenZiti Network in a compose file which should allow you to understand better -and learn how multiple routers can be linked to form a mesh network or serve as an initial -template to build your own compose file. - -Lastly, you can choose to run [docker](https://docs.docker.com/get-started/) directly. This mode is necessarily -more verbose but should you prefer to not use docker-compose it can also illustrate how to establish -an OpenZiti Network piece by piece. - -## Prerequisites - -### Bash - -All of these quickstarts will use bash. On MacOS/Linux this will be natural however on Windows you'll want -to ensure you have a suitable shell. There are numerous shells available but perhaps the simplest will be -to use [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl/install-win10). You -might also use git-bash, Cygwin, or any other bash shell you fancy. - -### Docker/Docker Compose - -If you are interested in using the quickstarts which use docker/docker-compose you will clearly need to -have one or both installed and be moderately familiar with whichever you are using. - -### Review All Scripts - -Remember - it's always a good idea to review any scripts before you run them. We encourage you to review -the scripts in these folders before running them. - -## Express - -By far the easiest way to establish an environment quickly is to simply run the express install script -found at [./quickstart/docker/image/ziti-cli-functions.sh](). - -### What It Does - -The express install script will do quite a few things to get you bootstrapped. It will: - -1. create a full suite of configuration files located by default at ~/.ziti/quickstart/$(hostname) - 1. create a full suite of PKI - 1. create a config file for the controller - 1. create a config file for an edge router -1. download the latest distribution of Ziti from github.com/openziti/ziti/releases -1. unzip the distribution -1. start the controller and router in the background -1. expose the controller on https://$(hostname):1280 - -## Docker - Compose - -The [docker-compose](https://docs.docker.com/compose/) based example will create numerous `ziti-router`s -as well as spooling up a `ziti-controller` and expose the controller on port 1280. This configuration is intended to -look and feel like the following image: -![image info](./docker-compose-nw.svg) - -Here, a simple OpenZiti Network is shown which contains two public OpenZiti Edge Routers, one router without the "edge" enabled -and usable only for transit, and two private edge routers: one blue, one red. The goal with this setup is to attempt to -have a single isolated service that is not accessible from outside of the blue network (as best as possible with -only docker). - -## Docker - No Compose - -You can still start up a dev environment easily with [docker](https://docs.docker.com/get-started/) only. In this example, -you will start an OpenZiti Controller as well as a single OpenZiti Edge Router. - -### Prerequisite - -The Docker containers must be able to communicate with one another. This is accomplished using a Docker network and -setting the alias of the container on that Docker network. - -Before running the commands below please do the following: - - #declare a variable that defines the 'network' - zitinw="myZitiNetwork" - - #declare a fully qualified path to the location that you want your shared files to go and create it - zitinw_shared="${HOME}/.ziti/dockerenvs/${zitinw}" - mkdir -p "${zitinw_shared}" - - #make a docker network for isolation while allowing the parts to be able to interact - docker network create "$zitinw" - -### Starting the Containers - -To start the containers you can simply run these two commands in two different shells. (or choose to daemonize them -once you're ready to do so). Take special note of the initial variables used in these commands. The ${zitinw} variable -is expected to be set. See the Prerequisite section above: - -OpenZiti Controller: - - docker run -d --name "${zitinw}-controller" --volume "${zitinw_shared}":/openziti/shared -it --network="${zitinw}" --network-alias=ziti-controller --network-alias=ziti-edge-controller --rm openziti/quickstart /openziti/scripts/run-controller.sh - -OpenZiti Edge Router: - - routerName=edge-router; docker run -d --name "${zitinw}-${routerName}" --rm -e ZITI_ROUTER_NAME="${routerName}" --volume "${zitinw_shared}":/openziti/shared -it --network="${zitinw}" --hostname "${routerName}" --network-alias="${routerName}" --rm openziti/quickstart /openziti/scripts/run-router.sh edge - -## Releasing a new version of the Quickstart - -### Artifacts Produced by a Release - -The enclosing project's GitHub releases are never updated and no Git tags are created for a quickstart release. - -1. `openziti/quickstart` container image [in Docker Hub](https://hub.docker.com/r/openziti/quickstart) -1. a CloudFront Function in AWS pointing the `get.openziti.io` reverse proxy to the GitHub SHA of the release - -### Release Process - -A quickstart release is created when either of the following conditions are met: - -1. OpenZiti, the enclosing project, is released by the OpenZiti team -1. A pull request is merged into the trunk branch `release-next` with the label `quickstartrelease` - -### Release Machinery - -The release process is encoded in [a GitHub workflow](../.github/workflows/release-quickstart.yml). - -### GitHub Raw Reverse Proxy - -The `get.openziti.io` reverse proxy is a CloudFront distribution that points to a CloudFront Function and serves as a -shorter HTTP URL getter for raw GitHub source files, e.g. `https://get.openziti.io/dock/simplified-docker-compose.yml`. -The CloudFront Function is a JavaScript function that looks at the URI path of the incoming request and forwards it to -the appropriate GitHub raw download path. The CloudFront Function is updated by the release process, and the CloudFront -Distribution itself is hand-maintained in the AWS Console. The Distribution has these characteristics: - -* Viewer Domain Name: `get.openziti.io` (frontend) -* Route Origin: `raw.githubusercontent.com` (backend, upstream) -* Auto-renewing TLS certificate from ACM -* Cache Policy `CachingOptimized` (default) -* Routes to Origin based on Javascript Function deployed by quickstart release - -You can add or change a GitHub raw shortcut route by modifying the [routes.yml](../dist/cloudfront/get.openziti.io/routes.yml) file. +The Ziti quickstart documentation is here: [Ziti Network Quickstarts](https://openziti.io/docs/category/network). From 8b799fde6c907065cbfed92b4f2a4606a48caf67 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 22 Apr 2024 17:14:37 -0400 Subject: [PATCH 03/72] prune extra files --- dist/docker-images/ziti-controller/.env | 2 -- dist/docker-images/ziti-controller/compose.override.yml | 3 --- dist/docker-images/ziti-router/.env | 3 --- 3 files changed, 8 deletions(-) delete mode 100644 dist/docker-images/ziti-controller/.env delete mode 100644 dist/docker-images/ziti-controller/compose.override.yml delete mode 100644 dist/docker-images/ziti-router/.env diff --git a/dist/docker-images/ziti-controller/.env b/dist/docker-images/ziti-controller/.env deleted file mode 100644 index a26307e74..000000000 --- a/dist/docker-images/ziti-controller/.env +++ /dev/null @@ -1,2 +0,0 @@ -ZITI_PWD=admin -ZITI_CTRL_ADVERTISED_ADDRESS=ctrl.127.0.0.1.sslip.io diff --git a/dist/docker-images/ziti-controller/compose.override.yml b/dist/docker-images/ziti-controller/compose.override.yml deleted file mode 100644 index b15aabc00..000000000 --- a/dist/docker-images/ziti-controller/compose.override.yml +++ /dev/null @@ -1,3 +0,0 @@ -services: - ziti-controller: - network_mode: host diff --git a/dist/docker-images/ziti-router/.env b/dist/docker-images/ziti-router/.env deleted file mode 100644 index aa610dbc1..000000000 --- a/dist/docker-images/ziti-router/.env +++ /dev/null @@ -1,3 +0,0 @@ -ZITI_ENROLL_TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IjUyN2UwYzMwZjgyYTMwMmFmNzMzMDFiZmQwYjY5YjU4NTRlOTdmZmEiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2N0cmwuMTI3LjAuMC4xLnNzbGlwLmlvOjEyODAiLCJzdWIiOiJ0ZVRaa0NZcjB4IiwiYXVkIjpbIiJdLCJleHAiOjE3MTI5NDkwMzEsImp0aSI6IjVkYjAyNzg3LThiYjYtNGI3Ny05ODdiLWUzYTUxNDRjMTBkMSIsImVtIjoiZXJvdHQiLCJjdHJscyI6bnVsbH0.ch5Dp-IVmqmn4u9OtILVaeDBvEeURU8Nh0KRXK_Z8ELwgu7yQO29s2zULHtj5AAVdl6tGkyln3UaUw2rnl-TcjSbRQ2NHDw4fcpLsHEuVZn648ppuDG0UosQJYJX8FSuvCxuUVot7mUaRXgqYbrdPfX8norOJp8f-ZG14i8MOZjR8JH2E1Ye__swH_BZCZ2QJxmaI8-TyCtzS6shbrIv2xWIG_2lscB3_9JGqcFk5f_jNrn0Dc2mXrMwF8xzeoo-erM_DyqTmq63X73fHIZKKZtJGOR58E-1QF77255hcGs7NrhSAl3EPWpYh-mMg9Y13vViT_ann_KFIpiHntKnPwQptmATjrAMhlAsHu0ZOlM1mV0divxJIznBsgr8ESeefWoXWMquctRdiM3l1-7tD37wtlbwGT36azt3ezZkbnjnu9NREZCFRvAyZ_lFrByKv2k7pZrxGrby4pbqeE-1hI1PZabpGiwpa4DK2BPmiUMFQnN557ZzvJXCRn6ucF2h5keLN6sfg0gRSUP32jVZbbJBLGTbmAxpPzLsvo6CPRAtuAoS1vt7E9teSPCiCsfYsm8KRqXhoEHVjqMFexdtIVpWjpKiwToxlP9tXKgqCEVFXRc0b0OM6N3OIuQSJMWocwFIH8JKiXC9_CG9_ZK9kd1XGVRdwCDpUC0pUsA2fg0 -ZITI_CTRL_ADVERTISED_ADDRESS=ctrl.127.0.0.1.sslip.io -ZITI_ROUTER_ADVERTISED_ADDRESS=router1.127.0.0.1.sslip.io From b9f8e1ca6cb3e51bc08fb54cd5007680375b627e Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 22 Apr 2024 17:22:21 -0400 Subject: [PATCH 04/72] restore the quickstart release part of the readme --- quickstart/README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/quickstart/README.md b/quickstart/README.md index d7956bc3b..93ce1bd89 100644 --- a/quickstart/README.md +++ b/quickstart/README.md @@ -1,3 +1,39 @@ # Quickstart The Ziti quickstart documentation is here: [Ziti Network Quickstarts](https://openziti.io/docs/category/network). + +## Releasing a new version of the Quickstart + +### Artifacts Produced by a Release + +The enclosing project's GitHub releases are never updated and no Git tags are created for a quickstart release. + +1. `openziti/quickstart` container image [in Docker Hub](https://hub.docker.com/r/openziti/quickstart) +1. a CloudFront Function in AWS pointing the `get.openziti.io` reverse proxy to the GitHub SHA of the release + +### Release Process + +A quickstart release is created when either of the following conditions are met: + +1. OpenZiti, the enclosing project, is released by the OpenZiti team +1. A pull request is merged into the trunk branch `release-next` with the label `quickstartrelease` + +### Release Machinery + +The release process is encoded in [a GitHub workflow](../.github/workflows/release-quickstart.yml). + +### GitHub Raw Reverse Proxy + +The `get.openziti.io` reverse proxy is a CloudFront distribution that points to a CloudFront Function and serves as a +shorter HTTP URL getter for raw GitHub source files, e.g. `https://get.openziti.io/dock/simplified-docker-compose.yml`. +The CloudFront Function is a JavaScript function that looks at the URI path of the incoming request and forwards it to +the appropriate GitHub raw download path. The CloudFront Function is updated by the release process, and the CloudFront +Distribution itself is hand-maintained in the AWS Console. The Distribution has these characteristics: + +* Viewer Domain Name: `get.openziti.io` (frontend) +* Route Origin: `raw.githubusercontent.com` (backend, upstream) +* Auto-renewing TLS certificate from ACM +* Cache Policy `CachingOptimized` (default) +* Routes to Origin based on Javascript Function deployed by quickstart release + +You can add or change a GitHub raw shortcut route by modifying the [routes.yml](../dist/cloudfront/get.openziti.io/routes.yml) file. From 57f95d6745b6eee65c551f7aa693adfcbafe46d0 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 22 Apr 2024 17:30:30 -0400 Subject: [PATCH 05/72] de-hyphenate old mentions of ziti-router as 'ziti router' --- doc/001-overview.md | 12 ++++++------ doc/transwarp_b1/transwarp_b1.md | 12 ++++++------ etc/edge.router.yml | 4 ++-- etc/edge.router_wss.yml | 8 ++++---- etc/tmpl/edge.router.yml | 4 ++-- quickstart/docker/image/run-router-external.sh | 5 ++--- tests/ats-edge.router.yml | 4 ++-- tests/ats-transit.router.yml | 2 +- tests/testdata/config/router-1.yml | 2 +- tests/testdata/config/router-2.yml | 2 +- ziti/cmd/agentcli/agent.go | 2 +- ziti/router/run.go | 6 +++--- zititest/models/db-creation/configs/router.yml.tmpl | 2 +- zititest/models/db-ctrl-test/configs/router.yml.tmpl | 2 +- .../db-sdk-hosting-test/configs/router.yml.tmpl | 2 +- zititest/models/links-test/configs/router.yml.tmpl | 2 +- zititest/models/router-test/configs/router.yml | 2 +- .../models/sdk-hosting-test/configs/router.yml.tmpl | 2 +- zititest/models/smoke/configs/router.yml.tmpl | 2 +- zititest/models/stall/configs/router.yml | 2 +- zititest/models/zrok-test/configs/router.yml.tmpl | 2 +- 21 files changed, 40 insertions(+), 41 deletions(-) diff --git a/doc/001-overview.md b/doc/001-overview.md index 1bf23faf1..48ab8ee55 100644 --- a/doc/001-overview.md +++ b/doc/001-overview.md @@ -32,13 +32,13 @@ connectivity, and endpoint enrollment. ## Ziti Router - The Ziti Router binary (ziti-router) is deployed multiple times to stand up multiple ingress and egress - points for a Ziti overlay network. Each router has its own identity and must be enrolled with the controller. - A Ziti environment requires one or more routers. +The Ziti Router is deployed multiple times to stand up multiple ingress and egress points for a Ziti overlay network. +Each router has its own identity and must be enrolled with the controller. A Ziti environment requires one or more +routers. - If the Ziti Edge features are enabled, routers may optionally be enrolled as an "edge router". Edge routers allow Ziti - SDK enabled applications, Ziti Applications, to access services or host services that have been configured within Ziti - as overlay services. +If the Ziti Edge features are enabled, routers may optionally be enrolled as an "edge router". Edge routers allow Ziti +SDK enabled applications, Ziti Applications, to access services or host services that have been configured within Ziti +as overlay services. ## Ziti Applications diff --git a/doc/transwarp_b1/transwarp_b1.md b/doc/transwarp_b1/transwarp_b1.md index b89d9fea1..583e048a7 100644 --- a/doc/transwarp_b1/transwarp_b1.md +++ b/doc/transwarp_b1/transwarp_b1.md @@ -461,7 +461,7 @@ The metrics instrument (and the other `dilithium` instruments) can be used with This example will be configured similarly to the pure Dilithium example above. There are two routers, each in an AWS VPC in different regions separated by geography. One of the routers provides a link listener, configured to use `transwarptls:`. -Here's the relevant logging output from the `ziti-router` process: +Here's the relevant logging output from the `ziti router` process: ``` [ 0.002] INFO foundation/transport/transwarptls.Listen: westworld3 profile = [ @@ -512,13 +512,13 @@ Here's the relevant logging output from the `ziti-router` process: [ 0.002] INFO fabric/router.(*Router).startXlinkListeners: started Xlink listener with binding [transport] advertising [transwarptls:54.167.243.24:6000] ``` -Here's the relevant log output when starting the second `ziti-router`, configured without a link listener. This output represents it dialing the `transwarptls:` link connection to the first router: +Here's the relevant log output when starting the second `ziti router`, configured without a link listener. This output represents it dialing the `transwarptls:` link connection to the first router: ``` -[ 0.630] INFO fabric/router/handler_ctrl.(*dialHandler).handle: received link connect request -[ 0.630] INFO fabric/router/xlink_transport.(*dialer).Dial: dialing link with split payload/ack channels [l/ZoLq] -[ 0.631] INFO fabric/router/xlink_transport.(*dialer).Dial: dialing payload channel for link [l/ZoLq] -[ 0.631] INFO foundation/transport/transwarptls.Dial: westworld3 profile = [ +[ 0.630] INFO fabric/router/handler_ctrl.(*dialHandler).andle: received link connect request +[ 0.630] INFO fabric/router/xlink_transport.(*dialer).Dil: dialing link with split payload/ack channels [l/ZoLq] +[ 0.631] INFO fabric/router/xlink_transport.(*dialer).Dil: dialing payload channel for link [l/ZoLq] +[ 0.631] INFO foundation/transport/transwarptls.Dial: wetworld3 profile = [ *westworld3.Profile { ... } diff --git a/etc/edge.router.yml b/etc/edge.router.yml index 42cbdd19e..56557d577 100644 --- a/etc/edge.router.yml +++ b/etc/edge.router.yml @@ -11,7 +11,7 @@ v: 3 # # The 'cert', 'server_cert', and 'ca' files will be overwritten with the results of the enrollment process. # -# When running the ziti-router the files/values in this section will be read and used. The 'cert' value will be used +# When running the ziti router the files/values in this section will be read and used. The 'cert' value will be used # as the client certificate to connect to the controller. The 'server_cert' is used for all servers/listeners. The # 'ca' value is used to populate an internally Trusted CA pool. identity: @@ -56,7 +56,7 @@ metrics: reportInterval: 15s messageQueueSize: 10 -# By having an 'edge' section defined, the ziti-router will attempt to parse the edge configuration. Removing this +# 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: diff --git a/etc/edge.router_wss.yml b/etc/edge.router_wss.yml index c362837f6..6b0828f08 100644 --- a/etc/edge.router_wss.yml +++ b/etc/edge.router_wss.yml @@ -11,7 +11,7 @@ v: 3 # # The 'cert', 'server_cert', and 'ca' files will be overwritten with the results of the enrollment process. # -# When running the ziti-router the files/values in this section will be read and used. The 'cert' value will be used +# When running the ziti router the files/values in this section will be read and used. The 'cert' value will be used # as the client certificate to connect to the controller. The 'server_cert' is used for all servers/listeners. The # 'ca' value is used to populate an internally Trusted CA pool. identity: @@ -36,13 +36,13 @@ link: dialers: - binding: transport -# 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 +# By having an 'edge' section defined, the ziti router will attempt to parse the edge configuration. Removing this +# section, commenting out, or altering the nameof the section will cause the router to no longer operate as an Edge # Router. edge: # (required to engage this router for WSS) underlay_type: wss - # (required) Information used to generate the initial registration CSR. For documentation on these fields please + # (required) Information used to generate theinitial 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 diff --git a/etc/tmpl/edge.router.yml b/etc/tmpl/edge.router.yml index 167420c4c..47ee6fd61 100644 --- a/etc/tmpl/edge.router.yml +++ b/etc/tmpl/edge.router.yml @@ -11,7 +11,7 @@ v: 3 # # The 'cert', 'server_cert', and 'ca' files will be overwritten with the results of the enrollment process. # -# When running the ziti-router the files/values in this section will be read and used. The 'cert' value will be used +# When running the ziti router the files/values in this section will be read and used. The 'cert' value will be used # as the client certificate to connect to the controller. The 'server_cert' is used for all servers/listeners. The # 'ca' value is used to populate an internally Trusted CA pool. identity: @@ -45,7 +45,7 @@ link: advertise: tls:127.0.0.1:${LINK_LISTENER_PORT} -# By having an 'edge' section defined, the ziti-router will attempt to parse the edge configuration. Removing this +# 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: diff --git a/quickstart/docker/image/run-router-external.sh b/quickstart/docker/image/run-router-external.sh index 120e38f82..8373e5ad1 100755 --- a/quickstart/docker/image/run-router-external.sh +++ b/quickstart/docker/image/run-router-external.sh @@ -91,11 +91,10 @@ if [ ! -f ${ZITI_ROUTER_ADVERTISED_ADDRESS}.jwt ]; then "${ZITI_BIN_DIR}/ziti" edge create edge-router "${ZITI_ROUTER_ADVERTISED_ADDRESS}" -o "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.jwt" -t -a "${ZITI_ROUTER_ROLES}" sleep 1 echo "---------- Enrolling edge-router ${ZITI_ROUTER_ADVERTISED_ADDRESS}...." - "${ZITI_BIN_DIR}/ziti-router" enroll "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.yaml" --jwt "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.jwt" + "${ZITI_BIN_DIR}/ziti" router enroll "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.yaml" --jwt "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.jwt" echo "" fi fi # Run the router -"${ZITI_BIN_DIR}/ziti-router" run "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.yaml" > "${ZITI_HOME}/ziti-${ZITI_ROUTER_ADVERTISED_ADDRESS}.log" - +"${ZITI_BIN_DIR}/ziti" router run "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.yaml" > "${ZITI_HOME}/ziti-${ZITI_ROUTER_ADVERTISED_ADDRESS}.log" diff --git a/tests/ats-edge.router.yml b/tests/ats-edge.router.yml index 4581a8be3..81b789fb1 100644 --- a/tests/ats-edge.router.yml +++ b/tests/ats-edge.router.yml @@ -11,7 +11,7 @@ v: 3 # # The 'cert', 'server_cert', and 'ca' files will be overwritten with the results of the enrollment process. # -# When running the ziti-router the files/values in this section will be read and used. The 'cert' value will be used +# When running the ziti router the files/values in this section will be read and used. The 'cert' value will be used # as the client certificate to connect to the controller. The 'server_cert' is used for all servers/listeners. The # 'ca' value is used to populate an internally Trusted CA pool. identity: @@ -32,7 +32,7 @@ identity: ctrl: endpoint: tls:127.0.0.1:6262 -# By having an 'edge' section defined, the ziti-router will attempt to parse the edge configuration. Removing this +# 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: diff --git a/tests/ats-transit.router.yml b/tests/ats-transit.router.yml index 02c2b9f11..c9e7127ea 100644 --- a/tests/ats-transit.router.yml +++ b/tests/ats-transit.router.yml @@ -11,7 +11,7 @@ v: 3 # # The 'cert', 'server_cert', and 'ca' files will be overwritten with the results of the enrollment process. # -# When running the ziti-router the files/values in this section will be read and used. The 'cert' value will be used +# When running the ziti router the files/values in this section will be read and used. The 'cert' value will be used # as the client certificate to connect to the controller. The 'server_cert' is used for all servers/listeners. The # 'ca' value is used to populate an internally Trusted CA pool. identity: diff --git a/tests/testdata/config/router-1.yml b/tests/testdata/config/router-1.yml index dcbd5dd25..508002c85 100644 --- a/tests/testdata/config/router-1.yml +++ b/tests/testdata/config/router-1.yml @@ -11,7 +11,7 @@ v: 3 # # The 'cert', 'server_cert', and 'ca' files will be overwritten with the results of the enrollment process. # -# When running the ziti-router the files/values in this section will be read and used. The 'cert' value will be used +# When running the ziti router the files/values in this section will be read and used. The 'cert' value will be used # as the client certificate to connect to the controller. The 'server_cert' is used for all servers/listeners. The # 'ca' value is used to populate an internally Trusted CA pool. identity: diff --git a/tests/testdata/config/router-2.yml b/tests/testdata/config/router-2.yml index 47a43734e..ec9be5b89 100644 --- a/tests/testdata/config/router-2.yml +++ b/tests/testdata/config/router-2.yml @@ -11,7 +11,7 @@ v: 3 # # The 'cert', 'server_cert', and 'ca' files will be overwritten with the results of the enrollment process. # -# When running the ziti-router the files/values in this section will be read and used. The 'cert' value will be used +# When running the ziti router the files/values in this section will be read and used. The 'cert' value will be used # as the client certificate to connect to the controller. The 'server_cert' is used for all servers/listeners. The # 'ca' value is used to populate an internally Trusted CA pool. identity: diff --git a/ziti/cmd/agentcli/agent.go b/ziti/cmd/agentcli/agent.go index 27af463ca..2a99f3f04 100644 --- a/ziti/cmd/agentcli/agent.go +++ b/ziti/cmd/agentcli/agent.go @@ -82,7 +82,7 @@ func NewAgentCmd(p common.OptionsProvider) *cobra.Command { routerCmd := &cobra.Command{ Use: "router", Aliases: []string{"r"}, - Short: "Interact with a ziti-router process using the IPC agent", + Short: "Interact with a ziti router process using the IPC agent", Run: func(cmd *cobra.Command, args []string) { cmdhelper.CheckErr(cmd.Help()) }, diff --git a/ziti/router/run.go b/ziti/router/run.go index 0e8107157..b0f80a043 100644 --- a/ziti/router/run.go +++ b/ziti/router/run.go @@ -63,13 +63,13 @@ func run(cmd *cobra.Command, args []string) { config, err := router.LoadConfig(args[0]) if err != nil { - startLogger.WithError(err).Error("error loading ziti-router config") + startLogger.WithError(err).Error("error loading ziti router config") panic(err) } config.SetFlags(getFlags(cmd)) startLogger = startLogger.WithField("routerId", config.Id.Token) - startLogger.Info("starting ziti-router") + startLogger.Info("starting ziti router") r := router.Create(config, version.GetCmdBuildInfo()) @@ -141,7 +141,7 @@ func waitForShutdown(r *router.Router) { fmt.Println("=== STACK DUMP CLOSE ===") } - pfxlog.Logger().Info("shutting down ziti-router") + pfxlog.Logger().Info("shutting down ziti router") if err := r.Shutdown(); err != nil { pfxlog.Logger().WithError(err).Info("error encountered during shutdown") diff --git a/zititest/models/db-creation/configs/router.yml.tmpl b/zititest/models/db-creation/configs/router.yml.tmpl index 788799f78..b5806af4c 100644 --- a/zititest/models/db-creation/configs/router.yml.tmpl +++ b/zititest/models/db-creation/configs/router.yml.tmpl @@ -49,7 +49,7 @@ listeners: # (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 +# 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: diff --git a/zititest/models/db-ctrl-test/configs/router.yml.tmpl b/zititest/models/db-ctrl-test/configs/router.yml.tmpl index af00778de..c0d12ffb3 100644 --- a/zititest/models/db-ctrl-test/configs/router.yml.tmpl +++ b/zititest/models/db-ctrl-test/configs/router.yml.tmpl @@ -57,7 +57,7 @@ listeners: # (required) The public hostname and port combination that Ziti SDKs should connect on. Previously this was in the chanIngress section. advertise: {{ .Host.PublicIp }}:62{{printf "%02d" .Component.ScaleIndex }} -# By having an 'edge' section defined, the ziti-router will attempt to parse the edge configuration. Removing this +# 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: diff --git a/zititest/models/db-sdk-hosting-test/configs/router.yml.tmpl b/zititest/models/db-sdk-hosting-test/configs/router.yml.tmpl index 72999dd24..e9d33f99b 100644 --- a/zititest/models/db-sdk-hosting-test/configs/router.yml.tmpl +++ b/zititest/models/db-sdk-hosting-test/configs/router.yml.tmpl @@ -49,7 +49,7 @@ listeners: # (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 +# 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: diff --git a/zititest/models/links-test/configs/router.yml.tmpl b/zititest/models/links-test/configs/router.yml.tmpl index b66c29b68..8c828b77b 100644 --- a/zititest/models/links-test/configs/router.yml.tmpl +++ b/zititest/models/links-test/configs/router.yml.tmpl @@ -55,7 +55,7 @@ listeners: # (required) The public hostname and port combination that Ziti SDKs should connect on. Previously this was in the chanIngress section. advertise: {{ .Host.PublicIp }}:62{{printf "%02d" .Component.ScaleIndex }} -# By having an 'edge' section defined, the ziti-router will attempt to parse the edge configuration. Removing this +# 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: diff --git a/zititest/models/router-test/configs/router.yml b/zititest/models/router-test/configs/router.yml index a2a203737..e0fb48918 100644 --- a/zititest/models/router-test/configs/router.yml +++ b/zititest/models/router-test/configs/router.yml @@ -49,7 +49,7 @@ # (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 + # 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: diff --git a/zititest/models/sdk-hosting-test/configs/router.yml.tmpl b/zititest/models/sdk-hosting-test/configs/router.yml.tmpl index 72999dd24..e9d33f99b 100644 --- a/zititest/models/sdk-hosting-test/configs/router.yml.tmpl +++ b/zititest/models/sdk-hosting-test/configs/router.yml.tmpl @@ -49,7 +49,7 @@ listeners: # (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 +# 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: diff --git a/zititest/models/smoke/configs/router.yml.tmpl b/zititest/models/smoke/configs/router.yml.tmpl index 1d1590aa7..3fdcfc53e 100644 --- a/zititest/models/smoke/configs/router.yml.tmpl +++ b/zititest/models/smoke/configs/router.yml.tmpl @@ -54,7 +54,7 @@ listeners: # (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 +# 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: diff --git a/zititest/models/stall/configs/router.yml b/zititest/models/stall/configs/router.yml index 6393990c2..9ec1b5c06 100644 --- a/zititest/models/stall/configs/router.yml +++ b/zititest/models/stall/configs/router.yml @@ -49,7 +49,7 @@ listeners: # (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 +# 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: diff --git a/zititest/models/zrok-test/configs/router.yml.tmpl b/zititest/models/zrok-test/configs/router.yml.tmpl index 2a912b665..fa9755f56 100644 --- a/zititest/models/zrok-test/configs/router.yml.tmpl +++ b/zititest/models/zrok-test/configs/router.yml.tmpl @@ -54,7 +54,7 @@ listeners: # (required) The public hostname and port combination that Ziti SDKs should connect on. Previously this was in the chanIngress section. advertise: {{ .Host.PublicIp }}:62{{printf "%02d" .Component.ScaleIndex }} -# By having an 'edge' section defined, the ziti-router will attempt to parse the edge configuration. Removing this +# 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: From 23651caf2067f4d5573f8b9f9a1f50bffb1c14db Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 22 Apr 2024 17:32:27 -0400 Subject: [PATCH 06/72] revert typos --- doc/transwarp_b1/transwarp_b1.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/transwarp_b1/transwarp_b1.md b/doc/transwarp_b1/transwarp_b1.md index 583e048a7..cf62a2064 100644 --- a/doc/transwarp_b1/transwarp_b1.md +++ b/doc/transwarp_b1/transwarp_b1.md @@ -515,10 +515,10 @@ Here's the relevant logging output from the `ziti router` process: Here's the relevant log output when starting the second `ziti router`, configured without a link listener. This output represents it dialing the `transwarptls:` link connection to the first router: ``` -[ 0.630] INFO fabric/router/handler_ctrl.(*dialHandler).andle: received link connect request -[ 0.630] INFO fabric/router/xlink_transport.(*dialer).Dil: dialing link with split payload/ack channels [l/ZoLq] -[ 0.631] INFO fabric/router/xlink_transport.(*dialer).Dil: dialing payload channel for link [l/ZoLq] -[ 0.631] INFO foundation/transport/transwarptls.Dial: wetworld3 profile = [ +[ 0.630] INFO fabric/router/handler_ctrl.(*dialHandler).handle: received link connect request +[ 0.630] INFO fabric/router/xlink_transport.(*dialer).Dial: dialing link with split payload/ack channels [l/ZoLq] +[ 0.631] INFO fabric/router/xlink_transport.(*dialer).Dial: dialing payload channel for link [l/ZoLq] +[ 0.631] INFO foundation/transport/transwarptls.Dial: westworld3 profile = [ *westworld3.Profile { ... } From 1a57b62c1ad52ef245622412e42a0b0e879e2fe5 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 22 Apr 2024 17:34:35 -0400 Subject: [PATCH 07/72] fix typo --- etc/edge.router_wss.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etc/edge.router_wss.yml b/etc/edge.router_wss.yml index 6b0828f08..2b90d3bf4 100644 --- a/etc/edge.router_wss.yml +++ b/etc/edge.router_wss.yml @@ -37,12 +37,12 @@ link: - binding: transport # By having an 'edge' section defined, the ziti router will attempt to parse the edge configuration. Removing this -# section, commenting out, or altering the nameof the section will cause the router to no longer operate as an Edge +# section, commenting out, or altering the name of the section will cause the router to no longer operate as an Edge # Router. edge: # (required to engage this router for WSS) underlay_type: wss - # (required) Information used to generate theinitial registration CSR. For documentation on these fields please + # (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 From 8e5afa2d4e360292b5a7340827ec64d964b1270b Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Tue, 23 Apr 2024 10:47:23 -0400 Subject: [PATCH 08/72] de-hyphenate more ziti-router recurrences --- tests/ats-edge-tunneler.router.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/ats-edge-tunneler.router.yml b/tests/ats-edge-tunneler.router.yml index 007db8506..cc5eb92fb 100644 --- a/tests/ats-edge-tunneler.router.yml +++ b/tests/ats-edge-tunneler.router.yml @@ -11,7 +11,7 @@ v: 3 # # The 'cert', 'server_cert', and 'ca' files will be overwritten with the results of the enrollment process. # -# When running the ziti-router the files/values in this section will be read and used. The 'cert' value will be used +# When running the ziti router the files/values in this section will be read and used. The 'cert' value will be used # as the client certificate to connect to the controller. The 'server_cert' is used for all servers/listeners. The # 'ca' value is used to populate an internally Trusted CA pool. identity: @@ -32,7 +32,7 @@ identity: ctrl: endpoint: tls:127.0.0.1:6262 -# By having an 'edge' section defined, the ziti-router will attempt to parse the edge configuration. Removing this +# 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: From a299c220e0ae555cee364158784a3e6e3c0dffeb Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Tue, 23 Apr 2024 18:47:41 -0400 Subject: [PATCH 09/72] correct some paths in systemd files' comments --- dist/dist-packages/linux/openziti-controller/bootstrap.bash | 2 +- dist/dist-packages/linux/openziti-controller/bootstrap.env | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/dist-packages/linux/openziti-controller/bootstrap.bash b/dist/dist-packages/linux/openziti-controller/bootstrap.bash index f4a7228b7..a4e5da1d0 100755 --- a/dist/dist-packages/linux/openziti-controller/bootstrap.bash +++ b/dist/dist-packages/linux/openziti-controller/bootstrap.bash @@ -179,7 +179,7 @@ function makeDatabase() { fi else echo "ERROR: need admin password; use LoadCredential in"\ - " /lib/systemd/system/ziti-controller.service or set env var ZITI_PWD" >&2 + "/etc/systemd/system/ziti-controller.service.d/override.conf or set env var ZITI_PWD" >&2 return 1 fi diff --git a/dist/dist-packages/linux/openziti-controller/bootstrap.env b/dist/dist-packages/linux/openziti-controller/bootstrap.env index 38d680a9b..07bb83863 100644 --- a/dist/dist-packages/linux/openziti-controller/bootstrap.env +++ b/dist/dist-packages/linux/openziti-controller/bootstrap.env @@ -38,5 +38,5 @@ ZITI_CTRL_DATABASE_FILE=bbolt.db ZITI_USER=admin # for better security, leave this assignment empty and create a file readable only by root containing the # password and set "LoadCredential=ZITI_PWD:/opt/openziti/etc/controller/.pwd" in -# /lib/systemd/system/ziti-controller.service +# /etc/systemd/system/ziti-controller.service.d/override.conf ZITI_PWD= From 83900e7f4915e73ee867df95eb447455c4f46092 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Wed, 24 Apr 2024 15:09:47 -0400 Subject: [PATCH 10/72] Allow running zde files test in loop --- go.mod | 2 +- go.sum | 4 +- zititest/go.mod | 6 +- zititest/go.sum | 12 ++-- zititest/models/smoke/actions/start.go | 1 + zititest/models/smoke/smoketest.go | 8 ++- zititest/models/smoke/tests.go | 58 +++++++++++++++ zititest/tests/files_test.go | 70 +++---------------- .../zitilab/component_ziti_edge_tunnel.go | 2 +- 9 files changed, 89 insertions(+), 74 deletions(-) create mode 100644 zititest/models/smoke/tests.go diff --git a/go.mod b/go.mod index d574d04ba..2192557fb 100644 --- a/go.mod +++ b/go.mod @@ -55,7 +55,7 @@ require ( github.com/openziti/jwks v1.0.3 github.com/openziti/metrics v1.2.51 github.com/openziti/runzmd v1.0.43 - github.com/openziti/sdk-golang v0.23.27 + github.com/openziti/sdk-golang v0.23.32 github.com/openziti/secretstream v0.1.19 github.com/openziti/storage v0.2.37 github.com/openziti/transport/v2 v2.0.131 diff --git a/go.sum b/go.sum index a6ec45c46..8a423980b 100644 --- a/go.sum +++ b/go.sum @@ -584,8 +584,8 @@ github.com/openziti/metrics v1.2.51 h1:+RfVdEGMOmhXBcC/gFIqXeNVnpWt9+cfrbCacFV/e github.com/openziti/metrics v1.2.51/go.mod h1:qvX8EKF8I42tA4KlNFX+RBx+ywNiVRvJTS4QofDU8KU= github.com/openziti/runzmd v1.0.43 h1:jQpDQ91I+6kbAM/2QV5s2900/CWgs3HyPhrpCNRQE6E= github.com/openziti/runzmd v1.0.43/go.mod h1:sTSSi4f3dcgO5w8PgSK4fGAlwR2ajexAlMcEtduuFaU= -github.com/openziti/sdk-golang v0.23.27 h1:CDbK9Wyql3tCrR9rifE+5oh9yX/AE5tq3m4AnRIHkOM= -github.com/openziti/sdk-golang v0.23.27/go.mod h1:wpqspQerSPtDbbtqMvqdHTU0uuAZwj6ASav9P6XaPK8= +github.com/openziti/sdk-golang v0.23.32 h1:GaY89LTikNO3PAHaHgeMUKYJ5aaGYaFiU2o2e37mJxE= +github.com/openziti/sdk-golang v0.23.32/go.mod h1:9PH2kfFge80Rxw/HyCPgsp2dntPbCsLAKB4ZjZFUovg= github.com/openziti/secretstream v0.1.19 h1:qSX23lyOI5ROvYPTjy7Lo6eFsq9qBBPzaG5hvgLlw48= github.com/openziti/secretstream v0.1.19/go.mod h1:1n/Uk8PQEREwB7iQXhUzNqt+8jYEpUZOJDGcetMI08o= github.com/openziti/storage v0.2.37 h1:VpYtV049yDBkjZEdLQYkc9ixHpKscMXG+02K6pbOwE8= diff --git a/zititest/go.mod b/zititest/go.mod index ee87b5dd3..01e485917 100644 --- a/zititest/go.mod +++ b/zititest/go.mod @@ -15,10 +15,10 @@ require ( github.com/openziti/agent v1.0.16 github.com/openziti/channel/v2 v2.0.128 github.com/openziti/edge-api v0.26.18 - github.com/openziti/fablab v0.5.49 + github.com/openziti/fablab v0.5.55 github.com/openziti/foundation/v2 v2.0.42 github.com/openziti/identity v1.0.75 - github.com/openziti/sdk-golang v0.23.27 + github.com/openziti/sdk-golang v0.23.32 github.com/openziti/storage v0.2.37 github.com/openziti/transport/v2 v2.0.131 github.com/openziti/ziti v0.28.3 @@ -45,7 +45,7 @@ require ( github.com/apapsch/go-jsonmerge/v2 v2.0.0 // 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.49.2 // indirect + github.com/aws/aws-sdk-go v1.51.18 // 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 diff --git a/zititest/go.sum b/zititest/go.sum index 984e0d201..23ecabfad 100644 --- a/zititest/go.sum +++ b/zititest/go.sum @@ -95,8 +95,8 @@ github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= 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.49.2 h1:+4BEcm1nPCoDbVd+gg8cdxpa1qJfrvnddy12vpEVWjw= -github.com/aws/aws-sdk-go v1.49.2/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.51.18 h1:JKrk49ZlBTyKa4+droU7U/hk0QG84v91xaA58O0LPdo= +github.com/aws/aws-sdk-go v1.51.18/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= @@ -596,8 +596,8 @@ github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAP github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= github.com/openziti/edge-api v0.26.18 h1:5V2Hr7gybCrg/XPlqjz3Z8nsCUBsqOm40HjXerYVlqw= github.com/openziti/edge-api v0.26.18/go.mod h1:FGkZr+55qItptJBHriogJDo64OY85kuiEEWEZsik0+A= -github.com/openziti/fablab v0.5.49 h1:uYmBQBS7auPeUlQBpnrU+ktDFhUTOklwwftBBqXcaDk= -github.com/openziti/fablab v0.5.49/go.mod h1:TAXN6lhTnmjL4nwkio3Ql96Lf5gnyeSbm7uV+CilsPo= +github.com/openziti/fablab v0.5.55 h1:J2C9xV5L87m6ukpU/r+vY4FfCq5SjPpCDV7wCVQ77Ns= +github.com/openziti/fablab v0.5.55/go.mod h1:QbKQZrhXCQfwRAyYuO/bpLd6JZJQ3A8/ugGi0fBrlWg= github.com/openziti/foundation/v2 v2.0.42 h1:cXZFql3xY92AHPCk/wqIoSUX9EHgegwPrs5bhFE2jNg= github.com/openziti/foundation/v2 v2.0.42/go.mod h1:a+REYnK9bZ2cvmOiuBLp57MjQqn3U5cHhJcDMLMO8rE= github.com/openziti/identity v1.0.75 h1:FDm3ZojmmGP9eoOxMvmF52RS6JzToTTeWB0pthIA+ks= @@ -608,8 +608,8 @@ github.com/openziti/metrics v1.2.51 h1:+RfVdEGMOmhXBcC/gFIqXeNVnpWt9+cfrbCacFV/e github.com/openziti/metrics v1.2.51/go.mod h1:qvX8EKF8I42tA4KlNFX+RBx+ywNiVRvJTS4QofDU8KU= github.com/openziti/runzmd v1.0.43 h1:jQpDQ91I+6kbAM/2QV5s2900/CWgs3HyPhrpCNRQE6E= github.com/openziti/runzmd v1.0.43/go.mod h1:sTSSi4f3dcgO5w8PgSK4fGAlwR2ajexAlMcEtduuFaU= -github.com/openziti/sdk-golang v0.23.27 h1:CDbK9Wyql3tCrR9rifE+5oh9yX/AE5tq3m4AnRIHkOM= -github.com/openziti/sdk-golang v0.23.27/go.mod h1:wpqspQerSPtDbbtqMvqdHTU0uuAZwj6ASav9P6XaPK8= +github.com/openziti/sdk-golang v0.23.32 h1:GaY89LTikNO3PAHaHgeMUKYJ5aaGYaFiU2o2e37mJxE= +github.com/openziti/sdk-golang v0.23.32/go.mod h1:9PH2kfFge80Rxw/HyCPgsp2dntPbCsLAKB4ZjZFUovg= github.com/openziti/secretstream v0.1.19 h1:qSX23lyOI5ROvYPTjy7Lo6eFsq9qBBPzaG5hvgLlw48= github.com/openziti/secretstream v0.1.19/go.mod h1:1n/Uk8PQEREwB7iQXhUzNqt+8jYEpUZOJDGcetMI08o= github.com/openziti/storage v0.2.37 h1:VpYtV049yDBkjZEdLQYkc9ixHpKscMXG+02K6pbOwE8= diff --git a/zititest/models/smoke/actions/start.go b/zititest/models/smoke/actions/start.go index e26447762..d42127ecf 100644 --- a/zititest/models/smoke/actions/start.go +++ b/zititest/models/smoke/actions/start.go @@ -44,6 +44,7 @@ func (a *startAction) bind(m *model.Model) model.Action { workflow.AddAction(component.StartInParallel(".sdk-app", 5)) workflow.AddAction(semaphore.Sleep(5 * time.Second)) + workflow.AddAction(edge.Login("#ctrl1")) workflow.AddAction(zitilib_actions.Edge("list", "edge-routers", "limit none")) workflow.AddAction(zitilib_actions.Edge("list", "terminators", "limit none")) diff --git a/zititest/models/smoke/smoketest.go b/zititest/models/smoke/smoketest.go index daa239ac5..b61224920 100644 --- a/zititest/models/smoke/smoketest.go +++ b/zititest/models/smoke/smoketest.go @@ -177,7 +177,8 @@ var Model = &model.Model{ "ziti-edge-tunnel-client": { Scope: model.Scope{Tags: model.Tags{"sdk-app", "client"}}, Type: &zitilab.ZitiEdgeTunnelType{ - Version: ZitiEdgeTunnelVersion, + //Version: ZitiEdgeTunnelVersion, + LogConfig: "'4'", }, }, }, @@ -263,6 +264,11 @@ var Model = &model.Model{ "login": model.Bind(edge.Login("#ctrl1")), "login2": model.Bind(edge.Login("#ctrl2")), "login3": model.Bind(edge.Login("#ctrl3")), + "testZet": model.Bind(model.ActionFunc(func(run model.Run) error { + out, err := TestFileDownload("zet", ClientCurl, "zet", true, FileSizes[0]) + pfxlog.Logger().WithField("test output", out).Info("test completed") + return err + })), }, Infrastructure: model.Stages{ diff --git a/zititest/models/smoke/tests.go b/zititest/models/smoke/tests.go new file mode 100644 index 000000000..4ea077d1b --- /dev/null +++ b/zititest/models/smoke/tests.go @@ -0,0 +1,58 @@ +package smoke + +import ( + "fmt" + "github.com/google/uuid" + "github.com/openziti/fablab/kernel/model" + "time" +) + +var hashes = map[string]string{ + "1KB": "0f343b0931126a20f133d67c2b018a3b", + "100KB": "4c6426ac7ef186464ecbb0d81cbfcb1e", + "20MB": "8f4e33f3dc3e414ff94e5fb6905cba8c", +} + +var timeouts = map[string]time.Duration{ + "1KB": 10 * time.Second, + "100KB": 10 * time.Second, + "20MB": 40 * time.Second, +} + +type HttpClient string + +const ( + ClientCurl HttpClient = "curl" + ClientWget HttpClient = "wget" +) + +var FileSizes = []string{"1KB", "100KB", "20MB"} +var HttpClients = []HttpClient{ClientCurl, ClientWget} + +func TestFileDownload(hostSelector string, client HttpClient, hostType string, encrypted bool, fileSize string) (string, error) { + host := model.GetModel().MustSelectHost("." + hostSelector + "-client") + + urlExtra := "" + if !encrypted { + urlExtra = "-unencrypted" + } + + url := fmt.Sprintf("https://files-%s%s.s3-us-west-1.amazonaws.ziti/%s.zip", hostType, urlExtra, fileSize) + + filename := uuid.NewString() + + var cmds []string + cmds = append(cmds, fmt.Sprintf("echo '%s %s' > checksums", hashes[fileSize], filename)) + + 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" --fail-early --fail-with-body -SL -o %s %s 2>&1`, filename, 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 %s -t 5 -T 5 %s 2>&1`, filename, url) + } + cmds = append(cmds, cmd) + cmds = append(cmds, "md5sum -c checksums") + + timeout := timeouts[fileSize] + return host.ExecLoggedWithTimeout(timeout, cmds...) +} diff --git a/zititest/tests/files_test.go b/zititest/tests/files_test.go index 8b02809f1..452538cb5 100644 --- a/zititest/tests/files_test.go +++ b/zititest/tests/files_test.go @@ -18,32 +18,9 @@ package tests import ( "fmt" - "github.com/google/uuid" - "github.com/openziti/fablab/kernel/lib" - "github.com/openziti/fablab/kernel/libssh" - "github.com/openziti/fablab/kernel/model" + "github.com/openziti/ziti/zititest/models/smoke" "github.com/stretchr/testify/require" "testing" - "time" -) - -var hashes = map[string]string{ - "1KB": "0f343b0931126a20f133d67c2b018a3b", - "100KB": "4c6426ac7ef186464ecbb0d81cbfcb1e", - "20MB": "8f4e33f3dc3e414ff94e5fb6905cba8c", -} - -var timeouts = map[string]time.Duration{ - "1KB": 10 * time.Second, - "100KB": 10 * time.Second, - "20MB": 40 * time.Second, -} - -type httpClient string - -const ( - ClientCurl httpClient = "curl" - ClientWget httpClient = "wget" ) func TestDownloadFiles(t *testing.T) { @@ -66,9 +43,9 @@ func TestDownloadFiles(t *testing.T) { t.Run("test-ert-downloads", func(t *testing.T) { t.Parallel() - for _, size := range []string{"1KB", "100KB", "20MB"} { + for _, size := range smoke.FileSizes { for _, hostType := range []string{"ert", "zet", "ziti-tunnel"} { - for _, client := range []httpClient{ClientCurl, ClientWget} { + for _, client := range smoke.HttpClients { for _, encrypted := range []bool{true, false} { success := testFileDownload(t, "ert", client, hostType, encrypted, size) checkZetHost(hostType, success) @@ -81,9 +58,9 @@ func TestDownloadFiles(t *testing.T) { t.Run("test-zet-downloads", func(t *testing.T) { t.Parallel() - for _, size := range []string{"1KB", "100KB", "20MB"} { + for _, size := range smoke.FileSizes { for _, hostType := range []string{"zet", "ziti-tunnel", "ert"} { - for _, client := range []httpClient{ClientCurl, ClientWget} { + for _, client := range smoke.HttpClients { for _, encrypted := range []bool{true, false} { success := testFileDownload(t, "zet", client, hostType, encrypted, size) checkZetHost(hostType, success) @@ -100,9 +77,9 @@ func TestDownloadFiles(t *testing.T) { t.Run("test-ziti-tunnel-downloads", func(t *testing.T) { t.Parallel() - for _, size := range []string{"1KB", "100KB", "20MB"} { + for _, size := range smoke.FileSizes { for _, hostType := range []string{"ziti-tunnel", "ert", "zet"} { - for _, client := range []httpClient{ClientCurl, ClientWget} { + for _, client := range smoke.HttpClients { for _, encrypted := range []bool{true, false} { success := testFileDownload(t, "ziti-tunnel", client, hostType, encrypted, size) checkZetHost(hostType, success) @@ -123,7 +100,7 @@ func TestDownloadFiles(t *testing.T) { } } -func testFileDownload(t *testing.T, hostSelector string, client httpClient, hostType string, encrypted bool, fileSize string) bool { +func testFileDownload(t *testing.T, hostSelector string, client smoke.HttpClient, hostType string, encrypted bool, fileSize string) bool { encDesk := "encrypted" if !encrypted { encDesk = "unencrypted" @@ -132,34 +109,7 @@ func testFileDownload(t *testing.T, hostSelector string, client httpClient, host success := false 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://files-%s%s.s3-us-west-1.amazonaws.ziti/%s.zip", hostType, urlExtra, fileSize) - sshConfigFactory := lib.NewSshConfigFactory(host) - - filename := uuid.NewString() - - var cmds []string - cmds = append(cmds, fmt.Sprintf("echo '%s %s' > checksums", hashes[fileSize], filename)) - - 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" --fail-early --fail-with-body -SL -o %s %s`, filename, 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 %s -t 5 -T 5 %s`, filename, url) - } - cmds = append(cmds, cmd) - cmds = append(cmds, "md5sum -c checksums") - - timeout := timeouts[fileSize] - o, err := libssh.RemoteExecAllWithTimeout(sshConfigFactory, timeout, cmds...) + o, err := smoke.TestFileDownload(hostSelector, client, hostType, encrypted, fileSize) t.Log(o) if hostType == "zet" && err != nil { @@ -172,7 +122,7 @@ func testFileDownload(t *testing.T, hostSelector string, client httpClient, host return } - req.NoError(err) + require.NoError(t, err) success = true }) return success diff --git a/zititest/zitilab/component_ziti_edge_tunnel.go b/zititest/zitilab/component_ziti_edge_tunnel.go index 67d3c8a6f..6f78b10f9 100644 --- a/zititest/zitilab/component_ziti_edge_tunnel.go +++ b/zititest/zitilab/component_ziti_edge_tunnel.go @@ -114,7 +114,7 @@ func (self *ZitiEdgeTunnelType) Start(_ model.Run, c *model.Component) error { logging = "ZITI_LOG=" + self.LogConfig + " " } - serviceCmd := fmt.Sprintf("%ssudo %s run -i %s > %s 2>&1 &", logging, binaryPath, configPath, logsPath) + serviceCmd := fmt.Sprintf("%ssudo %s run -v 4 -i %s > %s 2>&1 &", logging, binaryPath, configPath, logsPath) logrus.Infof("starting: %s", serviceCmd) value, err := c.GetHost().ExecLogged(serviceCmd) if err != nil { From 0298baa916f7694b1be7173b2bd57b577f87b46a Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Thu, 25 Apr 2024 13:31:47 -0400 Subject: [PATCH 11/72] Fix record not found unmarshall. Fixes #1983 --- controller/handler_peer_ctrl/response.go | 8 ++- controller/raft/raft.go | 64 +++++++++++++++++++++--- 2 files changed, 62 insertions(+), 10 deletions(-) diff --git a/controller/handler_peer_ctrl/response.go b/controller/handler_peer_ctrl/response.go index 030a19c69..bc2defdd3 100644 --- a/controller/handler_peer_ctrl/response.go +++ b/controller/handler_peer_ctrl/response.go @@ -18,12 +18,13 @@ package handler_peer_ctrl import ( "encoding/json" + "fmt" "github.com/hashicorp/raft" "github.com/openziti/channel/v2" + "github.com/openziti/foundation/v2/errorz" + "github.com/openziti/ziti/common/pb/cmd_pb" "github.com/openziti/ziti/controller/models" "github.com/openziti/ziti/controller/peermsg" - "github.com/openziti/ziti/common/pb/cmd_pb" - "github.com/openziti/foundation/v2/errorz" "github.com/pkg/errors" "github.com/sirupsen/logrus" ) @@ -52,6 +53,9 @@ func sendApiErrorResponse(m *channel.Message, ch channel.Channel, err *errorz.Ap encodingMap["message"] = err.Message encodingMap["status"] = err.Status encodingMap["cause"] = err.Cause + if err.Cause != nil { + encodingMap["causeType"] = fmt.Sprintf("%T", err.Cause) + } buf, encodeErr := json.Marshal(encodingMap) if encodeErr != nil { diff --git a/controller/raft/raft.go b/controller/raft/raft.go index a818755dc..fb57ea0ce 100644 --- a/controller/raft/raft.go +++ b/controller/raft/raft.go @@ -21,6 +21,7 @@ import ( "encoding/json" "fmt" "github.com/hashicorp/go-hclog" + "github.com/mitchellh/mapstructure" "github.com/openziti/foundation/v2/concurrenz" "github.com/openziti/foundation/v2/rate" "github.com/openziti/foundation/v2/versions" @@ -209,7 +210,9 @@ func NewController(env Env, migrationMgr MigrationManager) *Controller { migrationMgr: migrationMgr, clusterEvents: make(chan raft.Observation, 16), commandRateLimiter: command.NewRateLimiter(env.GetCommandRateLimiterConfig(), env.GetMetricsRegistry(), env.GetCloseNotify()), + errorMappers: map[string]func(map[string]any) error{}, } + result.initErrorMappers() return result } @@ -230,6 +233,12 @@ type Controller struct { isLeader atomic.Bool clusterEvents chan raft.Observation commandRateLimiter rate.RateLimiter + errorMappers map[string]func(map[string]any) error +} + +func (self *Controller) initErrorMappers() { + self.errorMappers[fmt.Sprintf("%T", &boltz.RecordNotFoundError{})] = self.parseBoltzNotFoundError + self.errorMappers[fmt.Sprintf("%T", &errorz.FieldError{})] = self.parseFieldError } func (self *Controller) RegisterClusterEventHandler(f func(event ClusterEvent, state ClusterState)) { @@ -408,14 +417,16 @@ func (self *Controller) decodeApiError(data []byte) error { if cause, ok := m["cause"]; ok { if strCause, ok := cause.(string); ok { apiErr.Cause = errors.New(strCause) - } else if objCause, ok := cause.(map[string]interface{}); ok { - apiErr.Cause = self.parseFieldError(objCause) + } else if objCause, ok := cause.(map[string]any); ok { + if parser := self.getErrorParser(m); parser != nil { + pfxlog.Logger().Info("parser found for cause type") + apiErr.Cause = parser(objCause) + } else { + pfxlog.Logger().Info("no parser found for cause type") + } + if apiErr.Cause == nil { - if b, err := json.Marshal(objCause); err == nil { - apiErr.Cause = errors.New(string(b)) - } else { - apiErr.Cause = errors.New(fmt.Sprintf("%+v", objCause)) - } + apiErr.Cause = self.fallbackMarshallError(objCause) } } else { pfxlog.Logger().Warnf("invalid api error encoding, no cause: %v", string(data)) @@ -426,7 +437,7 @@ func (self *Controller) decodeApiError(data []byte) error { return apiErr } -func (self *Controller) parseFieldError(m map[string]any) *errorz.FieldError { +func (self *Controller) parseFieldError(m map[string]any) error { var fieldError *errorz.FieldError field, ok := m["field"] if !ok { @@ -456,6 +467,43 @@ func (self *Controller) parseFieldError(m map[string]any) *errorz.FieldError { return fieldError } +func (self *Controller) parseBoltzNotFoundError(m map[string]any) error { + result := &boltz.RecordNotFoundError{} + err := mapstructure.Decode(m, result) + if err != nil { + multi := errorz.MultipleErrors{} + multi = append(multi, fmt.Errorf("unable to decode RecordNotFoundError (%w)", err)) + multi = append(multi, self.fallbackMarshallError(m)) + return multi + } + return result +} + +func (self *Controller) fallbackMarshallError(m map[string]any) error { + if b, err := json.Marshal(m); err == nil { + return errors.New(string(b)) + } + return errors.New(fmt.Sprintf("%+v", m)) +} + +func (self *Controller) getErrorParser(m map[string]any) func(map[string]any) error { + causeType, ok := m["causeType"] + if !ok { + pfxlog.Logger().Info("no causetype defined for error parser") + return nil + } + + causeTypeStr, ok := causeType.(string) + if !ok { + pfxlog.Logger().Info("causetype not string") + return nil + } + + pfxlog.Logger().Infof("causetype %s", causeTypeStr) + + return self.errorMappers[causeTypeStr] +} + // applyCommand encodes the command and passes it to ApplyEncodedCommand func (self *Controller) applyCommand(cmd command.Command) (uint64, error) { encoded, err := cmd.Encode() From cc80faaef5e4844df13fb5de95bb607cdbae725d Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Thu, 25 Apr 2024 15:04:29 -0400 Subject: [PATCH 12/72] Fix db creation workflow --- .github/workflows/fablab-db-creation.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/fablab-db-creation.yml b/.github/workflows/fablab-db-creation.yml index 189421ed6..e5bed9221 100644 --- a/.github/workflows/fablab-db-creation.yml +++ b/.github/workflows/fablab-db-creation.yml @@ -24,8 +24,6 @@ jobs: steps: - name: Checkout ziti uses: actions/checkout@v4 - with: - path: ziti - name: Install Go id: setup-go @@ -38,19 +36,17 @@ jobs: - name: Configure Git run: | - cd ziti $(go env GOPATH)/bin/ziti-ci configure-git - name: Pull ZITI_VERSION and set as $GITHUB_ENV for use with fablab run: | - cd ziti version="$($(go env GOPATH)/bin/ziti-ci -q get-current-version)" echo "Ziti Version: $version" echo "ZITI_VERSION=$version" >> $GITHUB_ENV - name: Build and Run run: | - cd ziti/zititest/models/db-creation + cd ./zititest/models/db-creation go build -o db-creation main.go echo "ZITI_ROOT=$(go env GOPATH)/bin" >> "$GITHUB_ENV" ./db-creation create db-creation @@ -59,5 +55,5 @@ jobs: - name: Teardown if: always() run: | - cd ziti/zititest/models/db-creation + cd ./zititest/models/db-creation ./db-creation dispose From 93b69ac36168f132ab3b8c2c0159ee22ac7107ed Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Thu, 25 Apr 2024 15:07:19 -0400 Subject: [PATCH 13/72] Fix logging for iperf and scp tests. Add testZitiTunnel action --- zititest/models/smoke/smoketest.go | 5 +++++ zititest/tests/iperf_test.go | 5 +---- zititest/tests/scp_test.go | 6 +----- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/zititest/models/smoke/smoketest.go b/zititest/models/smoke/smoketest.go index b61224920..ae529459f 100644 --- a/zititest/models/smoke/smoketest.go +++ b/zititest/models/smoke/smoketest.go @@ -269,6 +269,11 @@ var Model = &model.Model{ pfxlog.Logger().WithField("test output", out).Info("test completed") return err })), + "testZitiTunnel": model.Bind(model.ActionFunc(func(run model.Run) error { + out, err := TestFileDownload("ziti-tunnel", ClientCurl, "ziti-tunnel", true, FileSizes[0]) + pfxlog.Logger().WithField("test output", out).Info("test completed") + return err + })), }, Infrastructure: model.Stages{ diff --git a/zititest/tests/iperf_test.go b/zititest/tests/iperf_test.go index 91d139843..45494a3a6 100644 --- a/zititest/tests/iperf_test.go +++ b/zititest/tests/iperf_test.go @@ -18,8 +18,6 @@ package tests import ( "fmt" - "github.com/openziti/fablab/kernel/lib" - "github.com/openziti/fablab/kernel/libssh" "github.com/openziti/fablab/kernel/model" "github.com/stretchr/testify/require" "testing" @@ -98,8 +96,7 @@ func testIPerf(t *testing.T, hostSelector string, hostType string, encrypted boo cmd := fmt.Sprintf(`set -o pipefail; iperf3 -c %s -P 1 -t 10 %s`, addr, extraOptions) - sshConfigFactory := lib.NewSshConfigFactory(host) - o, err := libssh.RemoteExecAllWithTimeout(sshConfigFactory, 20*time.Second, cmd) + o, err := host.ExecLoggedWithTimeout(20*time.Second, cmd) if hostType == "zet" && err != nil { t.Skipf("zet hosted iperf test failed [%v]", err.Error()) return diff --git a/zititest/tests/scp_test.go b/zititest/tests/scp_test.go index 8e93d4770..11c15c158 100644 --- a/zititest/tests/scp_test.go +++ b/zititest/tests/scp_test.go @@ -19,8 +19,6 @@ package tests import ( "fmt" "github.com/google/uuid" - "github.com/openziti/fablab/kernel/lib" - "github.com/openziti/fablab/kernel/libssh" "github.com/openziti/fablab/kernel/model" "github.com/stretchr/testify/require" "testing" @@ -112,9 +110,7 @@ func testScp(t *testing.T, hostSelector string, hostType string, encrypted bool) req := require.New(t) req.NoError(err) - sshConfigFactory := lib.NewSshConfigFactory(host) - - o, err := libssh.RemoteExecAllWithTimeout(sshConfigFactory, 50*time.Second, test.cmd) + o, err := host.ExecLoggedWithTimeout(50*time.Second, test.cmd) if hostType == "zet" && err != nil { t.Skipf("zet hosted ssh failed [%v]", err.Error()) } else if hostSelector == "zet" && err != nil { From 4edac7d340079223873b5947206ef4f276167014 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Thu, 25 Apr 2024 16:06:20 -0400 Subject: [PATCH 14/72] Clean up zde verbosity config --- zititest/models/smoke/smoketest.go | 7 ++++--- zititest/zitilab/component_ziti_edge_tunnel.go | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/zititest/models/smoke/smoketest.go b/zititest/models/smoke/smoketest.go index ae529459f..0de04c2ad 100644 --- a/zititest/models/smoke/smoketest.go +++ b/zititest/models/smoke/smoketest.go @@ -177,8 +177,8 @@ var Model = &model.Model{ "ziti-edge-tunnel-client": { Scope: model.Scope{Tags: model.Tags{"sdk-app", "client"}}, Type: &zitilab.ZitiEdgeTunnelType{ - //Version: ZitiEdgeTunnelVersion, - LogConfig: "'4'", + Version: ZitiEdgeTunnelVersion, + VerbosityLevel: 4, }, }, }, @@ -230,7 +230,8 @@ var Model = &model.Model{ "ziti-edge-tunnel-host": { Scope: model.Scope{Tags: model.Tags{"sdk-app", "host", "zet-host"}}, Type: &zitilab.ZitiEdgeTunnelType{ - Version: ZitiEdgeTunnelVersion, + Version: ZitiEdgeTunnelVersion, + VerbosityLevel: 4, }, }, "iperf-server-zet": { diff --git a/zititest/zitilab/component_ziti_edge_tunnel.go b/zititest/zitilab/component_ziti_edge_tunnel.go index 6f78b10f9..234fd9ee6 100644 --- a/zititest/zitilab/component_ziti_edge_tunnel.go +++ b/zititest/zitilab/component_ziti_edge_tunnel.go @@ -27,11 +27,12 @@ import ( var _ model.ComponentType = (*ZitiEdgeTunnelType)(nil) type ZitiEdgeTunnelType struct { - Version string - ZitiVersion string - LocalPath string - LogConfig string - ConfigPathF func(c *model.Component) string + Version string + ZitiVersion string + LocalPath string + LogConfig string + VerbosityLevel uint16 + ConfigPathF func(c *model.Component) string } func (self *ZitiEdgeTunnelType) Label() string { @@ -114,7 +115,12 @@ func (self *ZitiEdgeTunnelType) Start(_ model.Run, c *model.Component) error { logging = "ZITI_LOG=" + self.LogConfig + " " } - serviceCmd := fmt.Sprintf("%ssudo %s run -v 4 -i %s > %s 2>&1 &", logging, binaryPath, configPath, logsPath) + verbosity := "" + if self.VerbosityLevel > 0 { + verbosity = fmt.Sprintf("-v %v", self.VerbosityLevel) + } + + serviceCmd := fmt.Sprintf("%ssudo %s run %s -i %s > %s 2>&1 &", logging, binaryPath, verbosity, configPath, logsPath) logrus.Infof("starting: %s", serviceCmd) value, err := c.GetHost().ExecLogged(serviceCmd) if err != nil { From bdeaed06fe1737754bb66bd8cf52c9c0941aef47 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 25 Apr 2024 17:38:23 -0400 Subject: [PATCH 15/72] use generic code fence lang 'text' in markdown that's imported to docusaurus --- dist/docker-images/ziti-controller/README.md | 4 +-- dist/docker-images/ziti-router/README.md | 28 ++++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/dist/docker-images/ziti-controller/README.md b/dist/docker-images/ziti-controller/README.md index e06276a89..f2537acff 100644 --- a/dist/docker-images/ziti-controller/README.md +++ b/dist/docker-images/ziti-controller/README.md @@ -17,7 +17,7 @@ The included `compose.yml` demonstrates how to bootstrap a controller container. At a minimum, you must set the address and password options in the parent env or set every recurrence in the compose file. -```bash +```text # fetch the compose file for the ziti-router image wget https://get.openziti.io/dist/docker-images/ziti-controller/compose.yml @@ -30,6 +30,6 @@ After a few seconds, `docker compose ps` will show a "healthy" status for the co Then, you may log in to the controller using the `ziti` CLI. -```bash +```text ziti edge login ctrl.127.21.71.0.sslip.io:1280 -u admin -p mypass ``` diff --git a/dist/docker-images/ziti-router/README.md b/dist/docker-images/ziti-router/README.md index 32eee9d21..b22bcdce2 100644 --- a/dist/docker-images/ziti-router/README.md +++ b/dist/docker-images/ziti-router/README.md @@ -16,7 +16,7 @@ that influence bootstrapping. ### Standalone Example -```bash +```text # create the router, saving the enrollment token to a file ziti edge create edge-router "router1" \ --jwt-output-file=./router1.jwt @@ -39,7 +39,7 @@ contrived example provides a web server that listens on port 8000 and a client t available. The client container shares a network interface with the router container and waits for the router to be healthy before running. -```bash +```text # fetch the compose file for the ziti-router image wget -O ./compose.router.yml https://get.openziti.io/dist/docker-images/ziti-router/compose.yml # fetch the router tproxy compose overrides files @@ -50,7 +50,7 @@ wget -O ./compose.quickstart.yml https://get.openziti.io/dock/all-in-one/compose Patch the Compose project to use the quickstart network and provide a web server to test the hello service. -```bash +```text cat <>./compose.tproxy.yml # link the router to the quickstart network so it can reach the Ziti controller networks: @@ -77,7 +77,7 @@ EOF Your `compose.tproxy.yml` should look like this. -```yaml +```text services: ziti-router: dns: @@ -107,31 +107,31 @@ services: Define the Compose project files. -```bash +```text export COMPOSE_FILE=compose.router.yml:compose.tproxy.yml:compose.quickstart.yml ``` Run the Ziti controller in the background with the all-in-one quickstart container. -```bash +```text docker compose up quickstart-check ``` Start the hello web server listening on 8000. -```bash +```text docker compose up hello --detach ``` Log in to the Ziti controller -```bash +```text ziti edge login 127.0.0.1:1280 -y -u admin -p admin ``` Create a Ziti service for the hello web server. -```bash +```text ziti edge create config "hello-intercept-config" intercept.v1 \ '{"portRanges":[{"high":80,"low":80}],"addresses":["hello.internal"],"protocols":["tcp"]}' ziti edge create config "hello-host-config" host.v1 \ @@ -151,14 +151,14 @@ ziti edge create service-policy "hello-bind-policy" Bind \ Grant the quickstart router permission to bind (provide) the hello service. -```bash +```text ziti edge update identity quickstart-router \ --role-attributes=hello.servers ``` Create a second Ziti router to use as a tproxy client. -```bash +```text ziti edge create edge-router "tproxy-router" \ --jwt-output-file=./tproxy-router.jwt \ --tunneler-enabled @@ -166,20 +166,20 @@ ziti edge create edge-router "tproxy-router" \ Grant the tproxy client permission to dial (consume) the hello service -```bash +```text ziti edge update identity tproxy-router \ --role-attributes=hello.clients ``` Simulate policies to check for authorization problems -```bash +```text ziti edge policy-advisor services -q ``` Run the demo client which triggers the run of the tproxy router because it is a dependency. -```bash +```text ZITI_ENROLL_TOKEN="$(<./tproxy-router.jwt)" \ ZITI_ROUTER_MODE=tproxy \ ZITI_CTRL_ADVERTISED_ADDRESS=quickstart \ From 848be13dde3a73c7b6f6c5ece544ceaf722e024e Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Tue, 23 Apr 2024 18:39:23 -0400 Subject: [PATCH 16/72] use standard coonfig vars for the Docker quickstart --- CHANGELOG.md | 1 + quickstart/docker/all-in-one/compose.override.yml | 8 ++++---- quickstart/docker/all-in-one/compose.yml | 9 +++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8684e136a..e6111ab7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * HA Alpha-3 * Bug fixes and minor enhancements +* [The all-in-one quickstart compose project](./quickstart/docker/all-in-one/README.md) now uses the same environment variable to configure the controller's address as the ziti command line tool ## HA Alpha 3 diff --git a/quickstart/docker/all-in-one/compose.override.yml b/quickstart/docker/all-in-one/compose.override.yml index 7ba3ef0a3..e9e7027fb 100644 --- a/quickstart/docker/all-in-one/compose.override.yml +++ b/quickstart/docker/all-in-one/compose.override.yml @@ -26,11 +26,11 @@ services: GOCACHE: /.cache/go-build GOPATH: /go ZITI_PWD: # default "admin" - ZITI_CTRL_ADVERTISED_ADDRESS: ${EXTERNAL_DNS:-quickstart} - ZITI_CTRL_EDGE_ADVERTISED_ADDRESS: ${EXTERNAL_DNS:-quickstart} # deprecated by ZITI_CTRL_ADVERTISED_ADDRESS + ZITI_CTRL_ADVERTISED_ADDRESS: ${ZITI_CTRL_ADVERTISED_ADDRESS:-quickstart} + ZITI_CTRL_EDGE_ADVERTISED_ADDRESS: ${ZITI_CTRL_ADVERTISED_ADDRESS:-quickstart} # deprecated by ZITI_CTRL_ADVERTISED_ADDRESS ZITI_CTRL_ADVERTISED_PORT: ${ZITI_CTRL_ADVERTISED_PORT:-1280} ZITI_CTRL_EDGE_ADVERTISED_PORT: ${ZITI_CTRL_ADVERTISED_PORT:-1280} # deprecated by ZITI_CTRL_ADVERTISED_PORT - ZITI_ROUTER_ADVERTISED_ADDRESS: ${EXTERNAL_DNS:-quickstart} + ZITI_ROUTER_ADVERTISED_ADDRESS: ${ZITI_CTRL_ADVERTISED_ADDRESS:-quickstart} ZITI_ROUTER_PORT: ${ZITI_ROUTER_PORT:-3022} ZITI_ROUTER_NAME: ${ZITI_ROUTER_NAME:-quickstart-router} command: go test -v ./ziti/cmd/edge/... @@ -62,6 +62,6 @@ services: ziti $${@} command: > -- edge login - ${EXTERNAL_DNS:-quickstart}:${ZITI_CTRL_ADVERTISED_PORT:-1280} + ${ZITI_CTRL_ADVERTISED_ADDRESS:-quickstart}:${ZITI_CTRL_ADVERTISED_PORT:-1280} -u ${ZITI_USER:-admin} -p ${ZITI_PWD:-admin} --ca /home/ziggy/quickstart/pki/root-ca/certs/root-ca.cert diff --git a/quickstart/docker/all-in-one/compose.yml b/quickstart/docker/all-in-one/compose.yml index 8aa4a0893..0293430bb 100644 --- a/quickstart/docker/all-in-one/compose.yml +++ b/quickstart/docker/all-in-one/compose.yml @@ -1,6 +1,6 @@ services: quickstart: - image: ${ZITI_QUICK_IMAGE:-docker.io/openziti/ziti-cli}:${ZITI_QUICK_TAG:-latest} + image: ${ZITI_CLI_IMAGE:-docker.io/openziti/ziti-cli}:${ZITI_CLI_TAG:-latest} restart: unless-stopped build: # the build context is the root of the ziti repo so that BuildKit can access the built ziti executable in /build @@ -15,14 +15,15 @@ services: # this allows other containers to use the same external DNS name to reach the quickstart container from within the # Docker network that clients outside the Docker network use to reach the quickstart container via port forwarding aliases: - - ${EXTERNAL_DNS:-null} + - ${ZITI_CTRL_ADVERTISED_ADDRESS:-ziti-controller} + - ${ZITI_ROUTER_ADVERTISED_ADDRESS:-ziti-router} entrypoint: - bash - -euc - | - ZITI_CMD+=" --ctrl-address ${EXTERNAL_DNS:-quickstart}"\ + ZITI_CMD+=" --ctrl-address ${ZITI_CTRL_ADVERTISED_ADDRESS:-quickstart}"\ " --ctrl-port ${ZITI_CTRL_ADVERTISED_PORT:-1280}"\ - " --router-address ${EXTERNAL_DNS:-quickstart}"\ + " --router-address ${ZITI_ROUTER_ADVERTISED_ADDRESS:-${ZITI_CTRL_ADVERTISED_ADDRESS:-quickstart}}"\ " --router-port ${ZITI_ROUTER_PORT:-3022}"\ " --password ${ZITI_PWD:-admin}" echo "DEBUG: run command is: ziti $${@} $${ZITI_CMD}" From 0037802b37f8263b92a15921c762949c6d49c871 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Fri, 26 Apr 2024 11:47:43 -0400 Subject: [PATCH 17/72] correct the var name in test workflow --- .github/workflows/test-quickstart.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-quickstart.yml b/.github/workflows/test-quickstart.yml index 6e57205fb..6fc51a9c7 100644 --- a/.github/workflows/test-quickstart.yml +++ b/.github/workflows/test-quickstart.yml @@ -43,7 +43,7 @@ jobs: name: Test all-in-one Quickstart runs-on: ubuntu-latest env: - ZITI_QUICK_TAG: local # override default :latest since we're not pulling from registry + ZITI_CLI_TAG: local # override default :latest since we're not pulling from registry ARTIFACTS_DIR: ${{ github.workspace }}/build # output dir for `go build`, input dir for `compose up --build` ZIGGY_UID: 1001 # let container EUID run-as GHA "runner" user to share cache, etc. steps: From e051381eb1bf5cb22908561d726e6cf658e95866 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Fri, 26 Apr 2024 12:03:49 -0400 Subject: [PATCH 18/72] finish separating the vars used with the all-in-one container image (it's just the ziti-cli image) from the expressInstall quickstart image --- quickstart/docker/all-in-one/.env | 2 -- quickstart/docker/all-in-one/README.md | 12 ++++++------ quickstart/docker/all-in-one/compose.override.yml | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) delete mode 100644 quickstart/docker/all-in-one/.env diff --git a/quickstart/docker/all-in-one/.env b/quickstart/docker/all-in-one/.env deleted file mode 100644 index 95355517b..000000000 --- a/quickstart/docker/all-in-one/.env +++ /dev/null @@ -1,2 +0,0 @@ -# optionally set the ziti CLI version to use, e.g., 0.32.0 -ZITI_QUICK_TAG=latest \ No newline at end of file diff --git a/quickstart/docker/all-in-one/README.md b/quickstart/docker/all-in-one/README.md index c39a05ecb..3046391b4 100644 --- a/quickstart/docker/all-in-one/README.md +++ b/quickstart/docker/all-in-one/README.md @@ -72,13 +72,13 @@ the one you build locally with `go build`. 2. In the "all-in-one" sub-directory, with `Dockerfile` present: ```bash - ZITI_QUICK_TAG=local docker compose up --build + ZITI_CLI_TAG=local docker compose up --build ``` By adding this `--build` option to the `up` command, the container image is built from the Dockerfile with your locally built `ziti` binary instead of pulling the default `openziti/ziti-cli` container image from Docker Hub. In the `compose.yml`, the Docker build context is hard-coded to `../../../` (three levels up from this directory at the - top level of a Git working copy of the source repo). Setting `ZITI_QUICK_TAG=local` tags the locally-built container + top level of a Git working copy of the source repo). Setting `ZITI_CLI_TAG=local` tags the locally-built container image differently from the official release image's `:latest` tag so you can tell them apart. ### Troubleshooting @@ -95,9 +95,9 @@ location where the container image build looks for the locally-built `ziti` bina If the binary you build on the Docker host doesn't run in the container due to an environment issue, such as a GLIBC version mismatch, you have the option to build `ziti` in the container every time you run -`ZITI_QUICK_TAG=local docker compose up --build`. +`ZITI_CLI_TAG=local docker compose up --build`. -Change `Dockerfile` like this, and run `ZITI_QUICK_TAG=local docker compose up --build` to build the +Change `Dockerfile` like this, and run `ZITI_CLI_TAG=local docker compose up --build` to build the checked-out source tree and run the quickstart with the build. ```dockerfile @@ -119,8 +119,8 @@ CMD ["ziti"] With `docker compose up --build`, the downloaded container image specified in `image` is replaced locally with the one built from the Dockerfile. This clobbers any image you may have pulled from the registry, which can lead to confusion. -You can prevent this by setting environment variable like `ZITI_QUICK_TAG=local docker compose up --build` to avoid +You can prevent this by setting environment variable like `ZITI_CLI_TAG=local docker compose up --build` to avoid clobbering the default `:latest` tag. -If you already clobbered `:latest` just run `ZITI_QUICK_TAG=latest docker compose pull` to refresh your local copy from +If you already clobbered `:latest` just run `ZITI_CLI_TAG=latest docker compose pull` to refresh your local copy from the registry. diff --git a/quickstart/docker/all-in-one/compose.override.yml b/quickstart/docker/all-in-one/compose.override.yml index e9e7027fb..56bf551c5 100644 --- a/quickstart/docker/all-in-one/compose.override.yml +++ b/quickstart/docker/all-in-one/compose.override.yml @@ -38,7 +38,7 @@ services: wait-for-login: profiles: - test - image: ${ZITI_QUICK_IMAGE:-docker.io/openziti/ziti-cli}:${ZITI_QUICK_TAG:-latest} + image: ${ZITI_CLI_IMAGE:-docker.io/openziti/ziti-cli}:${ZITI_CLI_TAG:-latest} networks: - quickstart # run as the same user as the host, so we can write in ~/.config/ziti From 063f1fe20f218d5cb3414d09a5412f9cba5e3e7b Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sun, 28 Apr 2024 09:01:36 -0400 Subject: [PATCH 19/72] Fix ADOPTERS typo --- ADOPTERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 28e7e9981..97971e906 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -47,4 +47,4 @@ Here's the list of projects which are proudly adopting and using OpenZiti | OSMIT GmbH | https://osmit.de/ | | OSMIT provides services for medium and large companies in the DACH region. We leverage the Zero Trust approach OpenZiti gives us to deliver our services in a secure manner to comply with data protection and privacy regulations (GDPR). | | Actieve | https://actieve.com/ | | Actieve provides hosting for database and web servers around the world for a variety of enterprise and small business needs. Ziti gives us the ability to grant access to services and application without the worry of exposing the services to hackers. | | Run Free | https://runfreeproject.com/ | | The Run Free Project provides a premium ecommerce experience for Run Speciaty stores. After a variety of intrusion attempts on the database and web services, Run Free implemented a Ziti only access policy for interconnecting store data and services. | -| grc4cisc | https://grc4ciso.com/ | | grc4ciso is a SaaS platform that unifies the functionalities of a XDR + GRC + ZeroTrust. Zero Trust is based on OpenZiti, providing overlay network components necessary to integrate zero trust into small and medium-sized companies. | +| grc4ciso | https://grc4ciso.com/ | | grc4ciso is a SaaS platform that unifies the functionalities of a XDR + GRC + ZeroTrust. Zero Trust is based on OpenZiti, providing overlay network components necessary to integrate zero trust into small and medium-sized companies. | From f715bb7875306584ba6ad4e9168ea45c86f2b7d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 16:00:43 +0000 Subject: [PATCH 20/72] Bump golangci/golangci-lint-action from 4 to 5 in the all group Bumps the all group with 1 update: [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action). Updates `golangci/golangci-lint-action` from 4 to 5 - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v4...v5) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: all ... Signed-off-by: dependabot[bot] --- .github/workflows/golangci-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 330c58c5c..f335cdb5e 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -25,7 +25,7 @@ jobs: go-version-file: ./go.mod - name: golangci-lint - uses: golangci/golangci-lint-action@v4 + uses: golangci/golangci-lint-action@v5 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version version: v1.57.2 From eba5fa043351ae2cc902dde633672ed8a19c5bc7 Mon Sep 17 00:00:00 2001 From: Shawn Carey Date: Mon, 29 Apr 2024 20:36:01 +0000 Subject: [PATCH 21/72] increase zet log verbosity, and use utc timestamps for easier correlation with events from other services. (#1995) --- zititest/models/smoke/smoketest.go | 4 ++-- zititest/zitilab/component_ziti_edge_tunnel.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/zititest/models/smoke/smoketest.go b/zititest/models/smoke/smoketest.go index 0de04c2ad..85954b010 100644 --- a/zititest/models/smoke/smoketest.go +++ b/zititest/models/smoke/smoketest.go @@ -178,7 +178,7 @@ var Model = &model.Model{ Scope: model.Scope{Tags: model.Tags{"sdk-app", "client"}}, Type: &zitilab.ZitiEdgeTunnelType{ Version: ZitiEdgeTunnelVersion, - VerbosityLevel: 4, + VerbosityLevel: 6, }, }, }, @@ -231,7 +231,7 @@ var Model = &model.Model{ Scope: model.Scope{Tags: model.Tags{"sdk-app", "host", "zet-host"}}, Type: &zitilab.ZitiEdgeTunnelType{ Version: ZitiEdgeTunnelVersion, - VerbosityLevel: 4, + VerbosityLevel: 6, }, }, "iperf-server-zet": { diff --git a/zititest/zitilab/component_ziti_edge_tunnel.go b/zititest/zitilab/component_ziti_edge_tunnel.go index 234fd9ee6..d3da03d25 100644 --- a/zititest/zitilab/component_ziti_edge_tunnel.go +++ b/zititest/zitilab/component_ziti_edge_tunnel.go @@ -120,7 +120,7 @@ func (self *ZitiEdgeTunnelType) Start(_ model.Run, c *model.Component) error { verbosity = fmt.Sprintf("-v %v", self.VerbosityLevel) } - serviceCmd := fmt.Sprintf("%ssudo %s run %s -i %s > %s 2>&1 &", logging, binaryPath, verbosity, configPath, logsPath) + serviceCmd := fmt.Sprintf("ZITI_TIME_FORMAT=utc %ssudo -E %s run %s -i %s > %s 2>&1 &", logging, binaryPath, verbosity, configPath, logsPath) logrus.Infof("starting: %s", serviceCmd) value, err := c.GetHost().ExecLogged(serviceCmd) if err != nil { From 47ad481b88ede882ee273d80cf2864eebdc74c37 Mon Sep 17 00:00:00 2001 From: Shawn Carey Date: Mon, 29 Apr 2024 21:07:39 +0000 Subject: [PATCH 22/72] get ziti-edge-tunnel 0.22.30 for dns configuration race fix (#1996) --- zititest/models/smoke/smoketest.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zititest/models/smoke/smoketest.go b/zititest/models/smoke/smoketest.go index 85954b010..1de5272a5 100644 --- a/zititest/models/smoke/smoketest.go +++ b/zititest/models/smoke/smoketest.go @@ -38,7 +38,7 @@ import ( "time" ) -const ZitiEdgeTunnelVersion = "v0.22.28" +const ZitiEdgeTunnelVersion = "v0.22.30" //go:embed configs var configResource embed.FS From 9112c05e53bf0197b212fbd470d260700de290c3 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Tue, 23 Apr 2024 18:36:50 -0400 Subject: [PATCH 23/72] add a shortcut route for the zrok quickstart --- dist/cloudfront/get.openziti.io/routes.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dist/cloudfront/get.openziti.io/routes.yml b/dist/cloudfront/get.openziti.io/routes.yml index e893bb4e5..967c83b68 100644 --- a/dist/cloudfront/get.openziti.io/routes.yml +++ b/dist/cloudfront/get.openziti.io/routes.yml @@ -42,3 +42,8 @@ - get: /dist/ raw: /openziti/ziti/{{GITHUB_SHA}}/dist/ file: /docker-images/ziti-router/compose.yml + +# https://get.openziti.io/zrok-docker/compose.yml +- get: /zrok-docker/ + raw: /openziti/zrok/main/docker/compose/zrok-instance/ + file: compose.yml \ No newline at end of file From 09d8f42f8464b7fb495fb0ddc145073677593a60 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Wed, 1 May 2024 13:43:38 -0400 Subject: [PATCH 24/72] HA update broken heartbeat reporting for xgress_edge_tunnel api sessions. Fixes #2007 --- router/state/manager.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/router/state/manager.go b/router/state/manager.go index c6c7fb34f..49022e697 100644 --- a/router/state/manager.go +++ b/router/state/manager.go @@ -605,12 +605,7 @@ func (sm *ManagerImpl) StartHeartbeat(env env.RouterEnv, intervalSeconds int, cl } func (sm *ManagerImpl) AddConnectedApiSession(token string) { - sm.activeApiSessions.Upsert(token, nil, func(exist bool, valueInMap *MapWithMutex, newValue *MapWithMutex) *MapWithMutex { - if exist { - return valueInMap - } - return newMapWithMutex() - }) + sm.activeApiSessions.Set(token, nil) } func (sm *ManagerImpl) RemoveConnectedApiSession(token string) { @@ -657,10 +652,12 @@ func (sm *ManagerImpl) ActiveApiSessionTokens() []string { var toClose []func() var activeKeys []string for i := range sm.activeApiSessions.IterBuffered() { - func() { - token := i.Key - chMutex := i.Val - + token := i.Key + chMutex := i.Val + if chMutex == nil { + // An xgress_edge_tunnel api-session won't have associated channels + activeKeys = append(activeKeys, token) + } else { chMutex.Visit(func(ch channel.Channel, closeCb func()) { if ch.IsClosed() { toClose = append(toClose, closeCb) @@ -668,7 +665,11 @@ func (sm *ManagerImpl) ActiveApiSessionTokens() []string { activeKeys = append(activeKeys, token) } }) - }() + } + } + + for _, f := range toClose { + f() } return activeKeys From 7fbd22f701c4456cd770ab73e3bc97daea636324 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Wed, 1 May 2024 15:29:50 -0400 Subject: [PATCH 25/72] fixes #2002 jwks keys are not refreshed on new KID - adds a tests for JWKS external signers - refreshed on new KID during auth now properly refreshes, instead of skipping if any keys are known --- controller/model/authenticator_mod_ext_jwt.go | 5 +- tests/auth_external_jwt_signer_test.go | 238 +++++++++++++++++- 2 files changed, 239 insertions(+), 4 deletions(-) diff --git a/controller/model/authenticator_mod_ext_jwt.go b/controller/model/authenticator_mod_ext_jwt.go index d969c242d..079788ed4 100644 --- a/controller/model/authenticator_mod_ext_jwt.go +++ b/controller/model/authenticator_mod_ext_jwt.go @@ -41,6 +41,7 @@ var _ AuthProcessor = &AuthModuleExtJwt{} const ( AuthMethodExtJwt = "ext-jwt" ExtJwtInternalClaim = "-internal-ext-jwt" + JwksQueryTimeout = 1 * time.Second ) type AuthModuleExtJwt struct { @@ -120,7 +121,7 @@ func (r *signerRecord) Resolve(force bool) error { return nil } - if !r.jwksLastRequest.IsZero() && time.Since(r.jwksLastRequest) < time.Second*5 { + if !r.jwksLastRequest.IsZero() && time.Since(r.jwksLastRequest) < JwksQueryTimeout { return nil } @@ -241,7 +242,7 @@ func (a *AuthModuleExtJwt) pubKeyLookup(token *jwt.Token) (interface{}, error) { key, ok := signerRecord.kidToPubKey[kid] if !ok { - if err := signerRecord.Resolve(false); err != nil { + if err := signerRecord.Resolve(true); err != nil { logger.WithError(err).Error("error attempting to resolve extJwtSigner certificate used for signing") } diff --git a/tests/auth_external_jwt_signer_test.go b/tests/auth_external_jwt_signer_test.go index 1b7fbc417..439488de7 100644 --- a/tests/auth_external_jwt_signer_test.go +++ b/tests/auth_external_jwt_signer_test.go @@ -20,15 +20,124 @@ package tests import ( + "crypto/x509" + "encoding/base64" + "encoding/json" + "github.com/go-openapi/strfmt" "github.com/golang-jwt/jwt/v5" "github.com/google/uuid" "github.com/openziti/edge-api/rest_model" nfpem "github.com/openziti/foundation/v2/pem" + "github.com/openziti/ziti/controller/model" + "net" "net/http" + "strconv" + "sync" "testing" "time" ) +type jsonWebKey struct { + Kid string `json:"kid"` + X5C []string `json:"x5c"` +} + +type jsonWebKeysResponse struct { + Keys []jsonWebKey `json:"keys"` +} + +type jwksServer struct { + server *http.Server + port int + certificates []*x509.Certificate + mutex sync.Mutex + requestCount int + listener net.Listener +} + +func newJwksServer(certificates []*x509.Certificate) *jwksServer { + srv := &jwksServer{ + certificates: certificates, + } + mux := http.NewServeMux() + mux.HandleFunc("/jwks", srv.handleJWKS) + srv.server = &http.Server{ + Handler: mux, + } + return srv +} + +func (js *jwksServer) AddCertificate(certificate *x509.Certificate) { + js.mutex.Lock() + defer js.mutex.Unlock() + + js.certificates = append(js.certificates, certificate) +} + +func (js *jwksServer) RemoveCertificate(certificate *x509.Certificate) { + js.mutex.Lock() + defer js.mutex.Unlock() + + for i, cert := range js.certificates { + if cert.Equal(certificate) { + js.certificates = append(js.certificates[:i], js.certificates[i+1:]...) + break + } + } +} + +func (js *jwksServer) GetJwksUrl() string { + return "http://localhost:" + strconv.Itoa(js.port) + "/jwks" +} + +func (js *jwksServer) GetRequestCount() int { + js.mutex.Lock() + defer js.mutex.Unlock() + + return js.requestCount +} + +func (js *jwksServer) Start() error { + listener, err := net.Listen("tcp", ":0") + if err != nil { + return err + } + js.mutex.Lock() + js.listener = listener + js.port = listener.Addr().(*net.TCPAddr).Port + js.mutex.Unlock() + go js.server.Serve(listener) + + return nil +} + +func (js *jwksServer) Stop() error { + return js.server.Close() +} + +func (js *jwksServer) handleJWKS(w http.ResponseWriter, r *http.Request) { + js.mutex.Lock() + defer js.mutex.Unlock() + + js.requestCount = js.requestCount + 1 + + var keys []jsonWebKey + for _, cert := range js.certificates { + + certBase64 := base64.StdEncoding.EncodeToString(cert.Raw) + key := jsonWebKey{ + Kid: cert.Subject.CommonName, + X5C: []string{string(certBase64)}, + } + keys = append(keys, key) + } + + response := jsonWebKeysResponse{Keys: keys} + + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(response) +} + func Test_Authenticate_External_Jwt(t *testing.T) { ctx := NewTestContext(t) defer ctx.Teardown() @@ -37,8 +146,36 @@ func Test_Authenticate_External_Jwt(t *testing.T) { var signerIds []string + jwksServer := newJwksServer(nil) + err := jwksServer.Start() + ctx.Req.NoError(err) + defer jwksServer.Stop() + // create a bunch of signers to use + // valid signer using a jwks endpoint + validJwksSignerCert1, validJwksSignerPrivateKey1 := newSelfSignedCert("valid jwks signer 1") + validJwksSignerCert2, validJwksSignerPrivateKey2 := newSelfSignedCert("valid jwks signer 2") + jwksEndpoint := strfmt.URI(jwksServer.GetJwksUrl()) + + jwksServer.AddCertificate(validJwksSignerCert1) + + validJwksSigner := &rest_model.ExternalJWTSignerCreate{ + JwksEndpoint: &jwksEndpoint, + Enabled: B(true), + Name: S("Test JWT Signer - JWKS - Enabled"), + Issuer: S("the-very-best-iss-jwks"), + Audience: S("the-very-best-aud-jwks"), + } + + createResponseEnv := &rest_model.CreateEnvelope{} + + resp, err := ctx.AdminManagementSession.newAuthenticatedRequest().SetBody(validJwksSigner).SetResult(createResponseEnv).Post("/external-jwt-signers") + ctx.Req.NoError(err) + ctx.Req.Equal(http.StatusCreated, resp.StatusCode()) + + signerIds = append(signerIds, createResponseEnv.Data.ID) + //valid signer with issuer and audience validJwtSignerCert, validJwtSignerPrivateKey := newSelfSignedCert("valid signer") validJwtSignerCertPem := nfpem.EncodeToString(validJwtSignerCert) @@ -52,9 +189,9 @@ func Test_Authenticate_External_Jwt(t *testing.T) { Audience: S("the-very-best-aud"), } - createResponseEnv := &rest_model.CreateEnvelope{} + createResponseEnv = &rest_model.CreateEnvelope{} - resp, err := ctx.AdminManagementSession.newAuthenticatedRequest().SetBody(validJwtSigner).SetResult(createResponseEnv).Post("/external-jwt-signers") + resp, err = ctx.AdminManagementSession.newAuthenticatedRequest().SetBody(validJwtSigner).SetResult(createResponseEnv).Post("/external-jwt-signers") ctx.Req.NoError(err) ctx.Req.Equal(http.StatusCreated, resp.StatusCode()) @@ -140,6 +277,103 @@ func Test_Authenticate_External_Jwt(t *testing.T) { ctx.NoError(err) ctx.Equal(http.StatusOK, resp.StatusCode()) + t.Run("authenticating with a signer with keys from JWKS", func(t *testing.T) { + ctx.testContextChanged(t) + + t.Run("succeeds with a known key", func(t *testing.T) { + ctx.testContextChanged(t) + + jwtToken := jwt.New(jwt.SigningMethodES256) + jwtToken.Claims = jwt.RegisteredClaims{ + Audience: []string{*validJwksSigner.Audience}, + ExpiresAt: &jwt.NumericDate{Time: time.Now().Add(2 * time.Hour)}, + ID: time.Now().String(), + IssuedAt: &jwt.NumericDate{Time: time.Now()}, + Issuer: *validJwksSigner.Issuer, + NotBefore: &jwt.NumericDate{Time: time.Now()}, + Subject: *ctx.AdminManagementSession.AuthResponse.IdentityID, + } + + jwtToken.Header["kid"] = validJwksSignerCert1.Subject.CommonName + + jwtStrSigned, err := jwtToken.SignedString(validJwksSignerPrivateKey1) + ctx.Req.NoError(err) + ctx.Req.NotEmpty(jwtStrSigned) + + result := &rest_model.CurrentAPISessionDetailEnvelope{} + + resp, err := ctx.newAnonymousClientApiRequest().SetResult(result).SetHeader("Authorization", "Bearer "+jwtStrSigned).Post("/authenticate?method=ext-jwt") + ctx.Req.NoError(err) + ctx.Req.Equal(http.StatusOK, resp.StatusCode(), string(resp.Body())) + ctx.Req.NotNil(result) + ctx.Req.NotNil(result.Data) + ctx.Req.NotNil(result.Data.Token) + }) + + t.Run("fails with an unknown key", func(t *testing.T) { + ctx.testContextChanged(t) + + jwtToken := jwt.New(jwt.SigningMethodES256) + jwtToken.Claims = jwt.RegisteredClaims{ + Audience: []string{*validJwksSigner.Audience}, + ExpiresAt: &jwt.NumericDate{Time: time.Now().Add(2 * time.Hour)}, + ID: time.Now().String(), + IssuedAt: &jwt.NumericDate{Time: time.Now()}, + Issuer: *validJwksSigner.Issuer, + NotBefore: &jwt.NumericDate{Time: time.Now()}, + Subject: *ctx.AdminManagementSession.AuthResponse.IdentityID, + } + + jwtToken.Header["kid"] = validJwksSignerCert2.Subject.CommonName + + jwtStrSigned, err := jwtToken.SignedString(validJwksSignerPrivateKey2) + ctx.Req.NoError(err) + ctx.Req.NotEmpty(jwtStrSigned) + + result := &rest_model.CurrentAPISessionDetailEnvelope{} + + resp, err := ctx.newAnonymousClientApiRequest().SetResult(result).SetHeader("Authorization", "Bearer "+jwtStrSigned).Post("/authenticate?method=ext-jwt") + ctx.Req.NoError(err) + ctx.Req.Equal(http.StatusUnauthorized, resp.StatusCode()) + }) + + t.Run("succeeds with a newly added key", func(t *testing.T) { + ctx.testContextChanged(t) + + jwksServer.AddCertificate(validJwksSignerCert2) + defer jwksServer.RemoveCertificate(validJwksSignerCert2) + + // allow jwks query timeout to pass (1 request / second) + time.Sleep(model.JwksQueryTimeout + 500*time.Millisecond) + + jwtToken := jwt.New(jwt.SigningMethodES256) + jwtToken.Claims = jwt.RegisteredClaims{ + Audience: []string{*validJwksSigner.Audience}, + ExpiresAt: &jwt.NumericDate{Time: time.Now().Add(2 * time.Hour)}, + ID: time.Now().String(), + IssuedAt: &jwt.NumericDate{Time: time.Now()}, + Issuer: *validJwksSigner.Issuer, + NotBefore: &jwt.NumericDate{Time: time.Now()}, + Subject: *ctx.AdminManagementSession.AuthResponse.IdentityID, + } + + jwtToken.Header["kid"] = validJwksSignerCert2.Subject.CommonName + + jwtStrSigned, err := jwtToken.SignedString(validJwksSignerPrivateKey2) + ctx.Req.NoError(err) + ctx.Req.NotEmpty(jwtStrSigned) + + result := &rest_model.CurrentAPISessionDetailEnvelope{} + + resp, err := ctx.newAnonymousClientApiRequest().SetResult(result).SetHeader("Authorization", "Bearer "+jwtStrSigned).Post("/authenticate?method=ext-jwt") + ctx.Req.NoError(err) + ctx.Req.Equal(http.StatusOK, resp.StatusCode(), string(resp.Body())) + ctx.Req.NotNil(result) + ctx.Req.NotNil(result.Data) + ctx.Req.NotNil(result.Data.Token) + }) + }) + t.Run("authenticating with a valid jwt succeeds", func(t *testing.T) { ctx.testContextChanged(t) From 4aebe5b1afd34e4b0b0f06cbb84b387f40d26f5c Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Wed, 1 May 2024 15:46:29 -0400 Subject: [PATCH 26/72] satiate the linter --- tests/auth_external_jwt_signer_test.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/auth_external_jwt_signer_test.go b/tests/auth_external_jwt_signer_test.go index 439488de7..a37cb257a 100644 --- a/tests/auth_external_jwt_signer_test.go +++ b/tests/auth_external_jwt_signer_test.go @@ -1,5 +1,4 @@ //go:build apitests -// +build apitests /* Copyright NetFoundry Inc. @@ -106,7 +105,9 @@ func (js *jwksServer) Start() error { js.listener = listener js.port = listener.Addr().(*net.TCPAddr).Port js.mutex.Unlock() - go js.server.Serve(listener) + go func() { + _ = js.server.Serve(listener) + }() return nil } @@ -115,7 +116,7 @@ func (js *jwksServer) Stop() error { return js.server.Close() } -func (js *jwksServer) handleJWKS(w http.ResponseWriter, r *http.Request) { +func (js *jwksServer) handleJWKS(w http.ResponseWriter, _ *http.Request) { js.mutex.Lock() defer js.mutex.Unlock() @@ -127,7 +128,7 @@ func (js *jwksServer) handleJWKS(w http.ResponseWriter, r *http.Request) { certBase64 := base64.StdEncoding.EncodeToString(cert.Raw) key := jsonWebKey{ Kid: cert.Subject.CommonName, - X5C: []string{string(certBase64)}, + X5C: []string{certBase64}, } keys = append(keys, key) } @@ -135,7 +136,7 @@ func (js *jwksServer) handleJWKS(w http.ResponseWriter, r *http.Request) { response := jsonWebKeysResponse{Keys: keys} w.Header().Set("Content-Type", "application/json") - json.NewEncoder(w).Encode(response) + _ = json.NewEncoder(w).Encode(response) } func Test_Authenticate_External_Jwt(t *testing.T) { @@ -149,7 +150,9 @@ func Test_Authenticate_External_Jwt(t *testing.T) { jwksServer := newJwksServer(nil) err := jwksServer.Start() ctx.Req.NoError(err) - defer jwksServer.Stop() + defer func() { + _ = jwksServer.Stop() + }() // create a bunch of signers to use From f47e4a3cf1c6b68398b19595702664f9db7413b4 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 2 May 2024 13:39:19 -0400 Subject: [PATCH 27/72] revise the zrok shortcut --- dist/cloudfront/get.openziti.io/routes.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/cloudfront/get.openziti.io/routes.yml b/dist/cloudfront/get.openziti.io/routes.yml index 967c83b68..93ff6b6ca 100644 --- a/dist/cloudfront/get.openziti.io/routes.yml +++ b/dist/cloudfront/get.openziti.io/routes.yml @@ -43,7 +43,7 @@ raw: /openziti/ziti/{{GITHUB_SHA}}/dist/ file: /docker-images/ziti-router/compose.yml -# https://get.openziti.io/zrok-docker/compose.yml -- get: /zrok-docker/ - raw: /openziti/zrok/main/docker/compose/zrok-instance/ - file: compose.yml \ No newline at end of file +# https://get.openziti.io/zrok/docker/compose/zrok-instance/compose.yml +- get: /zrok/ + raw: /openziti/zrok/main/ + file: docker/compose/zrok-instance/compose.yml \ No newline at end of file From e1122e7f6f14e9a122798e4b2954180bc8aa7333 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 2 May 2024 14:03:06 -0400 Subject: [PATCH 28/72] Revert "revise the zrok shortcut" This reverts commit f47e4a3cf1c6b68398b19595702664f9db7413b4. --- dist/cloudfront/get.openziti.io/routes.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/cloudfront/get.openziti.io/routes.yml b/dist/cloudfront/get.openziti.io/routes.yml index 93ff6b6ca..967c83b68 100644 --- a/dist/cloudfront/get.openziti.io/routes.yml +++ b/dist/cloudfront/get.openziti.io/routes.yml @@ -43,7 +43,7 @@ raw: /openziti/ziti/{{GITHUB_SHA}}/dist/ file: /docker-images/ziti-router/compose.yml -# https://get.openziti.io/zrok/docker/compose/zrok-instance/compose.yml -- get: /zrok/ - raw: /openziti/zrok/main/ - file: docker/compose/zrok-instance/compose.yml \ No newline at end of file +# https://get.openziti.io/zrok-docker/compose.yml +- get: /zrok-docker/ + raw: /openziti/zrok/main/docker/compose/zrok-instance/ + file: compose.yml \ No newline at end of file From b3621d339a21930f51286cf8dd98bab89e77963c Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 2 May 2024 14:04:43 -0400 Subject: [PATCH 29/72] revise the zrok shortcut --- dist/cloudfront/get.openziti.io/routes.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dist/cloudfront/get.openziti.io/routes.yml b/dist/cloudfront/get.openziti.io/routes.yml index 967c83b68..d9a1c14c3 100644 --- a/dist/cloudfront/get.openziti.io/routes.yml +++ b/dist/cloudfront/get.openziti.io/routes.yml @@ -43,7 +43,8 @@ raw: /openziti/ziti/{{GITHUB_SHA}}/dist/ file: /docker-images/ziti-router/compose.yml -# https://get.openziti.io/zrok-docker/compose.yml -- get: /zrok-docker/ +# https://get.openziti.io/zrok-instance/compose.yml +- get: /zrok-instance/ raw: /openziti/zrok/main/docker/compose/zrok-instance/ - file: compose.yml \ No newline at end of file + file: compose.yml + \ No newline at end of file From f61ad186fe015b0eb09f7c05e237f5d0063fcc7a Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Fri, 3 May 2024 07:49:03 -0400 Subject: [PATCH 30/72] add a citation.cff for the root project --- CITATION.cff | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 CITATION.cff diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 000000000..8a9331994 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,26 @@ +# This CITATION.cff file was generated with cffinit. +# Visit https://bit.ly/cffinit to generate yours today! + +cff-version: 1.2.0 +title: OpenZiti +message: >- + Thanks for using OpenZiti. Please cite it using this + metadata. +type: software +authors: + - name: NetFoundry Inc. + address: 101 S Tryon St UNIT 2700 + city: Charlotte + country: US + post-code: '28280' +repository-code: 'https://github.com/openziti/ziti' +url: 'https://openziti.io' +abstract: >- + OpenZiti is a free and open source project focused on + bringing zero trust networking principles directly into + applications. +keywords: + - open source + - zero trust + - secure networking +license: Apache-2.0 From 99b9f28d0db9fc443e1eba21796c1cf50c958515 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Fri, 3 May 2024 16:18:08 -0400 Subject: [PATCH 31/72] stop using a default address for the ctrl endpoint when generating a router config --- dist/dist-packages/linux/openziti-router/bootstrap.bash | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dist/dist-packages/linux/openziti-router/bootstrap.bash b/dist/dist-packages/linux/openziti-router/bootstrap.bash index 7e8628750..d7722cf93 100755 --- a/dist/dist-packages/linux/openziti-router/bootstrap.bash +++ b/dist/dist-packages/linux/openziti-router/bootstrap.bash @@ -8,6 +8,10 @@ function makeConfig() { # if [[ ! -s "${ZITI_ROUTER_CONFIG_FILE}" || "${1:-}" == --force ]]; then + if [[ -z "${ZITI_CTRL_ADVERTISED_ADDRESS:-}" ]]; then + echo "ERROR: ZITI_CTRL_ADVERTISED_ADDRESS is not set" >&2 + return 1 + fi ziti create config router "${ZITI_ROUTER_TYPE}" \ --tunnelerMode "${ZITI_ROUTER_MODE}" \ --routerName "${ZITI_ROUTER_NAME}" \ From ed0fa0760cc4d4f7ebde4b7a3323a002b9ffbb50 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Mon, 6 May 2024 12:07:56 -0400 Subject: [PATCH 32/72] Don't run smoketest on release branches, include release-v* branches --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index de8d5f8ae..a07f66adc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -167,7 +167,7 @@ jobs: fablab-smoketest: name: Fablab Smoketest # not applicable to forks. shouldn't run on release build - if: github.repository_owner == 'openziti' && github.ref != 'refs/heads/main' + if: github.repository_owner == 'openziti' && github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/heads/release-v') runs-on: ubuntu-20.04 steps: - name: Git Checkout @@ -290,7 +290,7 @@ jobs: fablab-ha-smoketest: name: Fablab HA Smoketest # not applicable to forks. shouldn't run on release build - if: false && github.repository_owner == 'openziti' && github.ref != 'refs/heads/main' + if: false && github.repository_owner == 'openziti' && github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/heads/release-v') runs-on: ubuntu-20.04 steps: - name: Git Checkout From 26c6d9bb44aa5f7427c65421aeaefdc15c7b9f02 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 6 May 2024 15:52:02 -0400 Subject: [PATCH 33/72] refine quickstart --- quickstart/docker/all-in-one/README.md | 90 ++++++-------------------- 1 file changed, 20 insertions(+), 70 deletions(-) diff --git a/quickstart/docker/all-in-one/README.md b/quickstart/docker/all-in-one/README.md index 3046391b4..ca6dbac96 100644 --- a/quickstart/docker/all-in-one/README.md +++ b/quickstart/docker/all-in-one/README.md @@ -1,4 +1,4 @@ -# All-in-one Ziti Docker quickstart +# All-in-one Docker quickstart This Docker Compose project runs `ziti edge quickstart` in a container while persisting configs, PKI, database, etc. in a Docker named volume. You may instead persist the state in a filesystem directory on the Docker host by setting env var @@ -9,6 +9,12 @@ a Docker named volume. You may instead persist the state in a filesystem directo This is the primary use case for this project: running the `ziti edge quickstart` command in the official `openziti/ziti-cli` container image. +1.You need only the `compose.yml` file in this directory to run your own Ziti network. + + ```bash + wget https://get.openziti.io/dock/all-in-one/compose.yml + ``` + 1. In this "all-in-one" sub-directory, pull the container images. This makes the latest official release image available locally. @@ -16,13 +22,13 @@ This is the primary use case for this project: running the `ziti edge quickstart docker compose pull ``` -2. Run the project and store the PKI, DB, and YAML configs in a sub-directory. +2. Run it. ```bash - ZITI_HOME=./quickstart docker compose up + docker compose up ``` -3. Modify configuration and bounce the container. +3. Modify the configuration and bounce the container. Modify the configs in the `./quickstart/` sub-directory adjacent to the `compose.yml` file. @@ -33,7 +39,7 @@ This is the primary use case for this project: running the `ziti edge quickstart 4. Observe the logs ```bash - docker compose logs quickstart --follow + docker compose logs --follow ``` 5. Run the CLI inside the quickstart environment. @@ -52,75 +58,19 @@ This is the primary use case for this project: running the `ziti edge quickstart results: 1-2 of 2 ``` -## Develop Ziti +### Save config on the Docker Host -This is a secondary use case for this Docker Compose project that replaces the `ziti` binary in the container image with -the one you build locally with `go build`. +The default storage option is to store the database, etc., in a named volume managed by Docker. Alternatively, you can store things in a subdirectory on the Docker host by setting `ZITI_HOME`. -1. In the top-level directory of the `ziti` project, build the binary. - - ```bash - go build -o ./build ./... - ``` +Destroy the old network so you can start over. - The build command can also be run from this "all-in-one" sub-directory. - - ```bash - go build -o ../../../build ../../../... - ``` - -2. In the "all-in-one" sub-directory, with `Dockerfile` present: - - ```bash - ZITI_CLI_TAG=local docker compose up --build - ``` - - By adding this `--build` option to the `up` command, the container image is built from the Dockerfile with your - locally built `ziti` binary instead of pulling the default `openziti/ziti-cli` container image from Docker Hub. In - the `compose.yml`, the Docker build context is hard-coded to `../../../` (three levels up from this directory at the - top level of a Git working copy of the source repo). Setting `ZITI_CLI_TAG=local` tags the locally-built container - image differently from the official release image's `:latest` tag so you can tell them apart. - -### Troubleshooting - -#### Changing File Locations - -The Compose project file `compose.yml` and `Dockerfile` have file paths that represent the assumption they're placed in -a sub-directory three levels deep in a checked-out copy of the `openziti/ziti` source repository. This allows the -Dockerfile to copy the built binary from the top-level directory `./build`. You may set the environment variable -`ARTIFACTS_DIR` to a different path relative to the build context (top-level directory of the source repo) to change the -location where the container image build looks for the locally-built `ziti` binary. - -#### Building `ziti` in Docker - -If the binary you build on the Docker host doesn't run in the container due to an environment issue, such as a GLIBC -version mismatch, you have the option to build `ziti` in the container every time you run -`ZITI_CLI_TAG=local docker compose up --build`. - -Change `Dockerfile` like this, and run `ZITI_CLI_TAG=local docker compose up --build` to build the -checked-out source tree and run the quickstart with the build. - -```dockerfile -FROM golang:1.22-bookworm AS builder -ARG ARTIFACTS_DIR=./build -WORKDIR /app -COPY go.mod go.sum ./ -RUN go mod download -COPY . . -RUN go build -o /app/${ARTIFACTS_DIR} ./... - -FROM debian:bookworm-slim -COPY --from=builder /app/${ARTIFACTS_DIR} /usr/local/bin/ - -CMD ["ziti"] +```bash +docker compose down --volumes ``` -#### Gotcha - Not Clobbering the Downloaded Container Image +Run it again with a different storage location. -With `docker compose up --build`, the downloaded container image specified in `image` is replaced locally with the one -built from the Dockerfile. This clobbers any image you may have pulled from the registry, which can lead to confusion. -You can prevent this by setting environment variable like `ZITI_CLI_TAG=local docker compose up --build` to avoid -clobbering the default `:latest` tag. +```bash +ZITI_HOME=./config docker compose up +``` -If you already clobbered `:latest` just run `ZITI_CLI_TAG=latest docker compose pull` to refresh your local copy from -the registry. From 1b34e3dc2125f0d196d61b2deff4913861e02425 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 6 May 2024 15:53:17 -0400 Subject: [PATCH 34/72] simplify docker quickstart remove the build option because it's probably not useful --- quickstart/docker/all-in-one/compose.yml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/quickstart/docker/all-in-one/compose.yml b/quickstart/docker/all-in-one/compose.yml index 0293430bb..4c359969f 100644 --- a/quickstart/docker/all-in-one/compose.yml +++ b/quickstart/docker/all-in-one/compose.yml @@ -2,14 +2,6 @@ services: quickstart: image: ${ZITI_CLI_IMAGE:-docker.io/openziti/ziti-cli}:${ZITI_CLI_TAG:-latest} restart: unless-stopped - build: - # the build context is the root of the ziti repo so that BuildKit can access the built ziti executable in /build - # and the Dockerfile - context: ../../../ - dockerfile: ./quickstart/docker/all-in-one/Dockerfile - args: - # path of the directory containing the locally-built ziti executable; relative to the build context - ARTIFACTS_DIR: ./build networks: quickstart: # this allows other containers to use the same external DNS name to reach the quickstart container from within the @@ -87,4 +79,4 @@ networks: volumes: # this will not be used if you switch from named volume to bind mount volume ziti_home: - driver: local \ No newline at end of file + driver: local From fb3e8d2dda17b4b956a499f434e915a79c00a5b0 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 6 May 2024 16:09:38 -0400 Subject: [PATCH 35/72] add build context to quickstart test --- quickstart/docker/all-in-one/compose.override.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/quickstart/docker/all-in-one/compose.override.yml b/quickstart/docker/all-in-one/compose.override.yml index 56bf551c5..ee5fb379b 100644 --- a/quickstart/docker/all-in-one/compose.override.yml +++ b/quickstart/docker/all-in-one/compose.override.yml @@ -1,4 +1,13 @@ services: + quickstart: + build: + # the build context is the root of the ziti repo so that BuildKit can access the built ziti executable in /build + # and the Dockerfile + context: ../../../ + dockerfile: ./quickstart/docker/all-in-one/Dockerfile + args: + # path of the directory containing the locally-built ziti executable; relative to the build context + ARTIFACTS_DIR: ./build quickstart-test: profiles: - test From 8fa1c6d0a266c60f4003473372c1213dadf60f1b Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 6 May 2024 16:32:36 -0400 Subject: [PATCH 36/72] use yaml --- ziti/cmd/create/config_templates/controller.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ziti/cmd/create/config_templates/controller.yml b/ziti/cmd/create/config_templates/controller.yml index d59ca9e1e..7f483c1c1 100644 --- a/ziti/cmd/create/config_templates/controller.yml +++ b/ziti/cmd/create/config_templates/controller.yml @@ -227,5 +227,7 @@ web: options: { } - binding: fabric options: { } -# - binding: zac -# options: { "location": "./zac", "indexFile":"index.html" } + # - binding: zac + # options: + # location: ./zac + # indexFile: index.html From 894234ecd3e5e4141825998df2b1cef8564e08b0 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Tue, 7 May 2024 12:17:25 -0400 Subject: [PATCH 37/72] outdent comment for YAML alignment --- ziti/cmd/create/config_templates/controller.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ziti/cmd/create/config_templates/controller.yml b/ziti/cmd/create/config_templates/controller.yml index 7f483c1c1..60d6d18c0 100644 --- a/ziti/cmd/create/config_templates/controller.yml +++ b/ziti/cmd/create/config_templates/controller.yml @@ -227,7 +227,7 @@ web: options: { } - binding: fabric options: { } - # - binding: zac - # options: - # location: ./zac - # indexFile: index.html + #- binding: zac + # options: + # location: ./zac + # indexFile: index.html From f5df9c76bc68107434d6dd87e0b5e74f3f4ea25a Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Wed, 8 May 2024 10:33:50 -0400 Subject: [PATCH 38/72] fixes #2026 root version handlers 404 - adds test cases for all root handler (version, well-know) - adds tests for all version targets (root, base + root, root + version) - fixes handlers for all combinations that wern't working --- controller/server/client-api.go | 6 +- controller/server/management-api.go | 16 +++- tests/root_endpoint_test.go | 115 ++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 5 deletions(-) create mode 100644 tests/root_endpoint_test.go diff --git a/controller/server/client-api.go b/controller/server/client-api.go index 47b38640b..f5e4ccec9 100644 --- a/controller/server/client-api.go +++ b/controller/server/client-api.go @@ -122,7 +122,7 @@ func (clientApi ClientApiHandler) RootPath() string { } func (clientApi ClientApiHandler) IsHandler(r *http.Request) bool { - return strings.HasPrefix(r.URL.Path, clientApi.RootPath()) || r.URL.Path == WellKnownEstCaCerts + return strings.HasPrefix(r.URL.Path, clientApi.RootPath()) || r.URL.Path == WellKnownEstCaCerts || r.URL.Path == VersionPath || r.URL.Path == RootPath } func (clientApi ClientApiHandler) ServeHTTP(writer http.ResponseWriter, request *http.Request) { @@ -166,6 +166,10 @@ func (clientApi ClientApiHandler) newHandler(ae *env.AppEnv) http.Handler { r.URL.Path = controller.ClientRestApiBaseUrlLatest + WellKnownEstCaCerts } + if r.URL.Path == VersionPath || r.URL.Path == RootPath { + r.URL.Path = controller.ClientRestApiBaseUrlLatest + VersionPath + } + if r.URL.Path == controller.ClientRestApiSpecUrl { //work around for: https://github.com/go-openapi/runtime/issues/226 diff --git a/controller/server/management-api.go b/controller/server/management-api.go index c90868e0d..21dffe023 100644 --- a/controller/server/management-api.go +++ b/controller/server/management-api.go @@ -20,18 +20,22 @@ import ( "fmt" "github.com/openziti/edge-api/rest_management_api_client" "github.com/openziti/edge-api/rest_management_api_server" + "github.com/openziti/xweb/v2" "github.com/openziti/ziti/controller" + "github.com/openziti/ziti/controller/api" "github.com/openziti/ziti/controller/apierror" "github.com/openziti/ziti/controller/env" "github.com/openziti/ziti/controller/response" - "github.com/openziti/ziti/controller/api" - "github.com/openziti/xweb/v2" "net/http" "strings" "time" ) -const WellKnownEstCaCerts = "/.well-known/est/cacerts" +const ( + WellKnownEstCaCerts = "/.well-known/est/cacerts" + VersionPath = "/version" + RootPath = "/" +) var _ xweb.ApiHandlerFactory = &ManagementApiFactory{} @@ -89,7 +93,7 @@ func (managementApi ManagementApiHandler) RootPath() string { } func (managementApi ManagementApiHandler) IsHandler(r *http.Request) bool { - return strings.HasPrefix(r.URL.Path, managementApi.RootPath()) || r.URL.Path == WellKnownEstCaCerts + return strings.HasPrefix(r.URL.Path, managementApi.RootPath()) || r.URL.Path == WellKnownEstCaCerts || r.URL.Path == VersionPath || r.URL.Path == RootPath } func (managementApi ManagementApiHandler) ServeHTTP(writer http.ResponseWriter, request *http.Request) { @@ -125,6 +129,10 @@ func (managementApi ManagementApiHandler) newHandler(ae *env.AppEnv) http.Handle r.URL.Path = controller.ManagementRestApiBaseUrlLatest + WellKnownEstCaCerts } + if r.URL.Path == VersionPath || r.URL.Path == RootPath { + r.URL.Path = controller.ManagementRestApiBaseUrlLatest + VersionPath + } + rc := ae.CreateRequestContext(rw, r) api.AddRequestContextToHttpContext(r, rc) diff --git a/tests/root_endpoint_test.go b/tests/root_endpoint_test.go new file mode 100644 index 000000000..f7680c348 --- /dev/null +++ b/tests/root_endpoint_test.go @@ -0,0 +1,115 @@ +package tests + +import ( + "testing" +) + +func Test_Root_Endpoints(t *testing.T) { + ctx := NewTestContext(t) + defer ctx.Teardown() + ctx.StartServer() + + t.Run("version can be retrieved", func(t *testing.T) { + + t.Run("version can be retrieved from root path plus version", func(t *testing.T) { + ctx.testContextChanged(t) + versionRootUrl := "https://" + ctx.ApiHost + "/version" + + resp, err := ctx.newAnonymousClientApiRequest().Get(versionRootUrl) + ctx.Req.NoError(err) + ctx.Req.NotNil(resp) + ctx.Req.Equal(200, resp.StatusCode()) + ctx.Req.NotEmpty(resp.Body()) + }) + + t.Run("version can be retrieved from root path", func(t *testing.T) { + ctx.testContextChanged(t) + versionRootUrl := "https://" + ctx.ApiHost + "/" + + resp, err := ctx.newAnonymousClientApiRequest().Get(versionRootUrl) + ctx.Req.NoError(err) + ctx.Req.NotNil(resp) + ctx.Req.Equal(200, resp.StatusCode()) + ctx.Req.NotEmpty(resp.Body()) + }) + + t.Run("version can be retrieved from the base management path plus version", func(t *testing.T) { + ctx.testContextChanged(t) + versionRootUrl := "https://" + ctx.ApiHost + "/edge/management/v1/version" + + resp, err := ctx.newAnonymousClientApiRequest().Get(versionRootUrl) + ctx.Req.NoError(err) + ctx.Req.NotNil(resp) + ctx.Req.Equal(200, resp.StatusCode()) + ctx.Req.NotEmpty(resp.Body()) + }) + + t.Run("version can be retrieved from the base management path", func(t *testing.T) { + ctx.testContextChanged(t) + versionRootUrl := "https://" + ctx.ApiHost + "/edge/management/v1" + + resp, err := ctx.newAnonymousClientApiRequest().Get(versionRootUrl) + ctx.Req.NoError(err) + ctx.Req.NotNil(resp) + ctx.Req.Equal(200, resp.StatusCode()) + ctx.Req.NotEmpty(resp.Body()) + }) + + t.Run("version can be retrieved from the base client path plus version", func(t *testing.T) { + ctx.testContextChanged(t) + versionRootUrl := "https://" + ctx.ApiHost + "/edge/client/v1/version" + + resp, err := ctx.newAnonymousClientApiRequest().Get(versionRootUrl) + ctx.Req.NoError(err) + ctx.Req.NotNil(resp) + ctx.Req.Equal(200, resp.StatusCode()) + ctx.Req.NotEmpty(resp.Body()) + }) + + t.Run("version can be retrieved from the base client path", func(t *testing.T) { + ctx.testContextChanged(t) + versionRootUrl := "https://" + ctx.ApiHost + "/edge/client/v1" + + resp, err := ctx.newAnonymousClientApiRequest().Get(versionRootUrl) + ctx.Req.NoError(err) + ctx.Req.NotNil(resp) + ctx.Req.Equal(200, resp.StatusCode()) + ctx.Req.NotEmpty(resp.Body()) + }) + }) + + t.Run(".well-known endpoint can be retrieved", func(t *testing.T) { + t.Run("well-known/est/ca/certs can be retrieved from root path", func(t *testing.T) { + ctx.testContextChanged(t) + caCertsRootUrl := "https://" + ctx.ApiHost + "/.well-known/est/cacerts" + + resp, err := ctx.newAnonymousClientApiRequest().Get(caCertsRootUrl) + ctx.Req.NoError(err) + ctx.Req.NotNil(resp) + ctx.Req.Equal(200, resp.StatusCode()) + ctx.Req.NotEmpty(resp.Body()) + }) + + t.Run("well-known/est/ca/certs can be retrieved from management path", func(t *testing.T) { + ctx.testContextChanged(t) + caCertsRootUrl := "https://" + ctx.ApiHost + "/edge/management/v1//.well-known/est/cacerts" + + resp, err := ctx.newAnonymousClientApiRequest().Get(caCertsRootUrl) + ctx.Req.NoError(err) + ctx.Req.NotNil(resp) + ctx.Req.Equal(200, resp.StatusCode()) + ctx.Req.NotEmpty(resp.Body()) + }) + + t.Run("well-known/est/ca/certs can be retrieved from client path", func(t *testing.T) { + ctx.testContextChanged(t) + caCertsRootUrl := "https://" + ctx.ApiHost + "/edge/client/v1/.well-known/est/cacerts" + + resp, err := ctx.newAnonymousClientApiRequest().Get(caCertsRootUrl) + ctx.Req.NoError(err) + ctx.Req.NotNil(resp) + ctx.Req.Equal(200, resp.StatusCode()) + ctx.Req.NotEmpty(resp.Body()) + }) + }) +} From 4f59026460fa69cb297fdcab938cff6f310ef53e Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Tue, 7 May 2024 09:23:08 -0400 Subject: [PATCH 39/72] add the console SPA to the controller image --- .github/dependabot.yml | 14 ++++++++++++++ dist/docker-images/ziti-controller/Dockerfile | 13 +++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 051529104..877c69f11 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -37,3 +37,17 @@ updates: - "major" - "minor" - "patch" + +# bump the console SPA version that is built in to the controller image +- package-ecosystem: docker + directory: "/dist/docker-images/ziti-controller" + schedule: + interval: weekly + open-pull-requests-limit: 10 + groups: + all: + applies-to: version-updates + update-types: + - "major" + - "minor" + - "patch" \ No newline at end of file diff --git a/dist/docker-images/ziti-controller/Dockerfile b/dist/docker-images/ziti-controller/Dockerfile index e529b5e75..d7b9dc92c 100644 --- a/dist/docker-images/ziti-controller/Dockerfile +++ b/dist/docker-images/ziti-controller/Dockerfile @@ -1,6 +1,11 @@ +# this Dockerfile builds docker.io/openziti/ziti-controller + ARG ZITI_CLI_TAG="latest" ARG ZITI_CLI_IMAGE="docker.io/openziti/ziti-cli" -# this builds docker.io/openziti/ziti-controller + +# dependabot bumps this version based on release to Hub +FROM openziti/ziti-console:3.1.0 as ziti-console + FROM ${ZITI_CLI_IMAGE}:${ZITI_CLI_TAG} ARG CONTROLLER_PACKAGE=./dist/dist-packages/linux/openziti-controller @@ -26,8 +31,12 @@ ENV ZITI_CTRL_BOOTSTRAP_BASH=/bootstrap.bash COPY ${CONTROLLER_PACKAGE}/bootstrap.bash ${ZITI_CTRL_BOOTSTRAP_BASH} COPY ${CONTROLLER_PACKAGE}/entrypoint.bash / +# copy the console SPA build files +COPY --from=ziti-console /usr/src/app/dist/app-ziti-console /ziti-console + +RUN mkdir -p /ziti-controller +RUN chown -R ziggy:ziggy /ziti-controller /ziti-console WORKDIR /ziti-controller -RUN chown -R ziggy:ziggy /ziti-controller # configure logging ENV PFXLOG_NO_JSON=true From 885c86cf461458aed7e6dc2c8062692e8b28b871 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Wed, 8 May 2024 18:13:19 -0400 Subject: [PATCH 40/72] use a full path to disambiguate the path to static files from the URL path and binding name --- ziti/cmd/create/config_templates/controller.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ziti/cmd/create/config_templates/controller.yml b/ziti/cmd/create/config_templates/controller.yml index 60d6d18c0..27cdbbbfe 100644 --- a/ziti/cmd/create/config_templates/controller.yml +++ b/ziti/cmd/create/config_templates/controller.yml @@ -229,5 +229,5 @@ web: options: { } #- binding: zac # options: - # location: ./zac + # location: /ziti-console # indexFile: index.html From b1bad9fca1ecae59fd89ad9f272b840bce61a3bf Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 9 May 2024 11:12:39 -0400 Subject: [PATCH 41/72] rename console image ziti-console-assets --- dist/docker-images/ziti-controller/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/docker-images/ziti-controller/Dockerfile b/dist/docker-images/ziti-controller/Dockerfile index d7b9dc92c..a7b28ef01 100644 --- a/dist/docker-images/ziti-controller/Dockerfile +++ b/dist/docker-images/ziti-controller/Dockerfile @@ -4,7 +4,7 @@ ARG ZITI_CLI_TAG="latest" ARG ZITI_CLI_IMAGE="docker.io/openziti/ziti-cli" # dependabot bumps this version based on release to Hub -FROM openziti/ziti-console:3.1.0 as ziti-console +FROM openziti/ziti-console-assets:3.1.0 as ziti-console FROM ${ZITI_CLI_IMAGE}:${ZITI_CLI_TAG} From f733b804a1986440b41ac593c3a6ff810afb799c Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 9 May 2024 16:29:30 -0400 Subject: [PATCH 42/72] fixes #2032 for release, sdk dep update --- go.mod | 42 +++---- go.sum | 374 +++++++-------------------------------------------------- 2 files changed, 63 insertions(+), 353 deletions(-) diff --git a/go.mod b/go.mod index d0ab5e94a..da2e97f4d 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/go-openapi/strfmt v0.23.0 github.com/go-openapi/swag v0.23.0 github.com/go-openapi/validate v0.24.0 - github.com/go-resty/resty/v2 v2.12.0 + github.com/go-resty/resty/v2 v2.13.0 github.com/golang-jwt/jwt/v5 v5.2.1 github.com/google/go-cmp v0.6.0 github.com/google/gopacket v1.1.19 @@ -43,7 +43,7 @@ require ( github.com/kataras/go-events v0.0.3 github.com/lucsky/cuid v1.2.1 github.com/mdlayher/netlink v1.7.2 - github.com/michaelquigley/pfxlog v0.6.10 + github.com/michaelquigley/pfxlog v1.0.0 github.com/miekg/dns v1.1.59 github.com/mitchellh/mapstructure v1.5.0 github.com/natefinch/lumberjack v2.0.0+incompatible @@ -55,7 +55,7 @@ require ( github.com/openziti/jwks v1.0.3 github.com/openziti/metrics v1.2.51 github.com/openziti/runzmd v1.0.43 - github.com/openziti/sdk-golang v0.23.32 + github.com/openziti/sdk-golang v0.23.35 github.com/openziti/secretstream v0.1.19 github.com/openziti/storage v0.2.37 github.com/openziti/transport/v2 v2.0.131 @@ -67,7 +67,7 @@ require ( github.com/rabbitmq/amqp091-go v1.8.1 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 github.com/russross/blackfriday v1.6.0 - github.com/shirou/gopsutil/v3 v3.24.3 + github.com/shirou/gopsutil/v3 v3.24.4 github.com/sirupsen/logrus v1.9.3 github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e github.com/spf13/cobra v1.8.0 @@ -79,12 +79,12 @@ require ( github.com/zitadel/oidc/v2 v2.12.0 go.etcd.io/bbolt v1.3.9 go4.org v0.0.0-20180809161055-417644f6feb5 - golang.org/x/crypto v0.22.0 - golang.org/x/net v0.24.0 + golang.org/x/crypto v0.23.0 + golang.org/x/net v0.25.0 golang.org/x/sync v0.7.0 - golang.org/x/sys v0.19.0 - golang.org/x/text v0.14.0 - google.golang.org/protobuf v1.33.0 + golang.org/x/sys v0.20.0 + golang.org/x/text v0.15.0 + google.golang.org/protobuf v1.34.1 gopkg.in/AlecAivazis/survey.v1 v1.8.8 gopkg.in/resty.v1 v1.12.0 gopkg.in/square/go-jose.v2 v2.6.0 @@ -121,7 +121,7 @@ require ( github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/gomarkdown/markdown v0.0.0-20230922112808-5421fefb8386 // indirect - github.com/gorilla/schema v1.2.1 // indirect + github.com/gorilla/schema v1.3.0 // indirect github.com/gorilla/securecookie v1.1.2 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-msgpack v0.5.5 // indirect @@ -135,7 +135,7 @@ require ( 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 - github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a // indirect + github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -167,8 +167,8 @@ require ( github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.6.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect - github.com/tklauser/go-sysconf v0.3.13 // indirect - github.com/tklauser/numcpus v0.7.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect @@ -176,17 +176,17 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect - go.opentelemetry.io/otel v1.25.0 // indirect - go.opentelemetry.io/otel/metric v1.25.0 // indirect - go.opentelemetry.io/otel/trace v1.25.0 // indirect + go.opentelemetry.io/otel v1.26.0 // indirect + go.opentelemetry.io/otel/metric v1.26.0 // indirect + go.opentelemetry.io/otel/trace v1.26.0 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.9.0 // indirect - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect golang.org/x/image v0.13.0 // indirect - golang.org/x/mod v0.16.0 // indirect - golang.org/x/oauth2 v0.19.0 // indirect - golang.org/x/term v0.19.0 // indirect - golang.org/x/tools v0.19.0 // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/oauth2 v0.20.0 // indirect + golang.org/x/term v0.20.0 // indirect + golang.org/x/tools v0.21.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect nhooyr.io/websocket v1.8.11 // indirect diff --git a/go.sum b/go.sum index a4e62becb..40f5aca0b 100644 --- a/go.sum +++ b/go.sum @@ -7,37 +7,11 @@ cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6A cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= @@ -80,7 +54,6 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= @@ -99,7 +72,6 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c h1:qq7IeRYvCmew9ThhcfslD5XD25P/UsBxsTozk6ywF+A= github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c/go.mod h1:wdbXg77soR6ESRprAMEwAQDFtLT6EAGF5o1GRy0cB5k= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4= @@ -114,15 +86,9 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-iptables v0.7.0 h1:XWM3V+MPRr5/q51NuWSgU0fqMad64Zyxs8ZUoMsamr8= @@ -130,7 +96,6 @@ github.com/coreos/go-iptables v0.7.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFE github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -167,12 +132,7 @@ github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75/go. github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= 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= @@ -203,8 +163,6 @@ github.com/go-acme/lego/v4 v4.16.1/go.mod h1:AVvwdPned/IWpD/ihHhMsKnveF7HHYAz/Cm github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U= github.com/go-jose/go-jose/v4 v4.0.1/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -239,38 +197,28 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= -github.com/go-resty/resty/v2 v2.12.0 h1:rsVL8P90LFvkUYq/V5BTVe203WfRIU4gvcf+yfzJzGA= -github.com/go-resty/resty/v2 v2.12.0/go.mod h1:o0yGPrkS3lOe1+eFajk6kBW8ScXzwU3hD69/gt2yB/0= +github.com/go-resty/resty/v2 v2.13.0 h1:joaL6wxSgm1OZal4FAAyddkL1T4uo5NxHYFkGmUusqE= +github.com/go-resty/resty/v2 v2.13.0/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -278,10 +226,6 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= @@ -294,13 +238,8 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= @@ -313,21 +252,9 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= @@ -339,8 +266,8 @@ github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyE github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/gorilla/schema v1.2.1 h1:tjDxcmdb+siIqkTNoV+qRH2mjYdr2hHe5MKXbp61ziM= -github.com/gorilla/schema v1.2.1/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= +github.com/gorilla/schema v1.3.0 h1:rbciOzXAx3IB8stEFnfTwO3sYa6EWlQk79XdyustPDA= +github.com/gorilla/schema v1.3.0/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -351,7 +278,6 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmg github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -397,8 +323,6 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174 h1:WlZsjVhE8Af9IcZDGgJGQpNflI3+MJSBhsgT5PCtzBQ= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= @@ -420,9 +344,7 @@ github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtL github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= 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/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= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kataras/go-events v0.0.3 h1:o5YK53uURXtrlg7qE/vovxd/yKOJcLuFtPQbf1rYMC4= @@ -430,11 +352,9 @@ github.com/kataras/go-events v0.0.3/go.mod h1:bFBgtzwwzrag7kQmGuU1ZaVxhK2qseYPQo 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/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/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.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -460,11 +380,10 @@ 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-20240226150601-1dcf7310316a h1:3Bm7EwfUQUvhNeKIkUct/gl9eod1TcXuj8stxvi/GoI= -github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= +github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74 h1:1KuuSOy4ZNgW0KA2oYIngXVFhQcXxhLqCVK7cBcldkk= +github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -512,8 +431,8 @@ github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyex 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= github.com/michaelquigley/pfxlog v0.3.1/go.mod h1:pwJmJ9nN787xk9U+0z8/5nP2GMhU6GGCTfgBWGpiXaQ= -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 v1.0.0 h1:1DbSQ/u3eEdt533yWd/zmxwtaZx9GQRRb+SD/DgLFag= +github.com/michaelquigley/pfxlog v1.0.0/go.mod h1:67bZY14oqZvB6kFHm8sVkEdu8A469UZaymGofQeJeQQ= 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.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs= @@ -530,7 +449,6 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4 github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -584,8 +502,8 @@ github.com/openziti/metrics v1.2.51 h1:+RfVdEGMOmhXBcC/gFIqXeNVnpWt9+cfrbCacFV/e github.com/openziti/metrics v1.2.51/go.mod h1:qvX8EKF8I42tA4KlNFX+RBx+ywNiVRvJTS4QofDU8KU= github.com/openziti/runzmd v1.0.43 h1:jQpDQ91I+6kbAM/2QV5s2900/CWgs3HyPhrpCNRQE6E= github.com/openziti/runzmd v1.0.43/go.mod h1:sTSSi4f3dcgO5w8PgSK4fGAlwR2ajexAlMcEtduuFaU= -github.com/openziti/sdk-golang v0.23.32 h1:GaY89LTikNO3PAHaHgeMUKYJ5aaGYaFiU2o2e37mJxE= -github.com/openziti/sdk-golang v0.23.32/go.mod h1:9PH2kfFge80Rxw/HyCPgsp2dntPbCsLAKB4ZjZFUovg= +github.com/openziti/sdk-golang v0.23.35 h1:7qWgkFIWBgCS+O8sho6hpqKBM7d3NENh5bSUs8wjMeY= +github.com/openziti/sdk-golang v0.23.35/go.mod h1:+eVyqtmY2STTIgtQ9Rze+iemkKM+hAFBWnjHT/u5NWo= github.com/openziti/secretstream v0.1.19 h1:qSX23lyOI5ROvYPTjy7Lo6eFsq9qBBPzaG5hvgLlw48= github.com/openziti/secretstream v0.1.19/go.mod h1:1n/Uk8PQEREwB7iQXhUzNqt+8jYEpUZOJDGcetMI08o= github.com/openziti/storage v0.2.37 h1:VpYtV049yDBkjZEdLQYkc9ixHpKscMXG+02K6pbOwE8= @@ -606,7 +524,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/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -614,7 +531,6 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.5.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -658,7 +574,6 @@ github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc 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= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= @@ -676,8 +591,8 @@ github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6g github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= 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.24.3 h1:eoUGJSmdfLzJ3mxIhmOAhgKEKgQkeOwKpz1NbhVnuPE= -github.com/shirou/gopsutil/v3 v3.24.3/go.mod h1:JpND7O217xa72ewWz9zN2eIIkPWsDN/3pl0H8Qt0uwg= +github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= +github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= 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.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= @@ -724,24 +639,19 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/speps/go-hashids v2.0.0+incompatible h1:kSfxGfESueJKTx0mpER9Y/1XHl+FVQjtCqRyYcviFbw= github.com/speps/go-hashids v2.0.0+incompatible/go.mod h1:P7hqPzMdnZOfyIk+xrlG1QaSMw+gCBdHKsBDnhpaZvc= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -771,11 +681,11 @@ github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cb github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4= -github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4= -github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= @@ -793,11 +703,7 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1: github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 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.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= @@ -806,9 +712,6 @@ github.com/zitadel/oidc/v2 v2.12.0/go.mod h1:LrRav74IiThHGapQgCHZOUNtnqJG0tcZKHr go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak= @@ -817,30 +720,23 @@ go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -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.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k= -go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg= -go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA= -go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s= +go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= +go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= +go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= +go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4= go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= -go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM= -go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I= +go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= +go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= 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/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.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/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90tenwKoCX93Gn3MAQJMOSBsDQ= @@ -855,30 +751,22 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -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-20191112222119-e1110fd1c708/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= 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= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -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-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= +golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= 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= @@ -893,26 +781,17 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -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/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= -golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 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= @@ -932,58 +811,27 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -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-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.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= 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= 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= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.19.0 h1:9+E/EZBCbTLNrbN35fHv/a/d/mOBatymz1zbtQrXpIg= -golang.org/x/oauth2 v0.19.0/go.mod h1:vYi7skDa1x015PmRRYZ7+s1cWyPgrPiSYRe4rnsexc8= +golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= +golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -991,11 +839,7 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -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/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= @@ -1020,51 +864,28 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1079,35 +900,30 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= -golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= -golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= 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= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -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.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/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1130,45 +946,14 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= -golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 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= @@ -1181,32 +966,12 @@ google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1220,38 +985,7 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -1259,22 +993,7 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1283,12 +1002,9 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= 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.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/AlecAivazis/survey.v1 v1.8.8 h1:5UtTowJZTz1j7NxVzDGKTz6Lm9IWm8DDF6b7a2wq9VY= gopkg.in/AlecAivazis/survey.v1 v1.8.8/go.mod h1:CaHjv79TCgAvXMSFJSVgonHXYWxnhzI3eoHtnX5UgUo= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -1303,7 +1019,6 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= @@ -1317,16 +1032,13 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= @@ -1336,8 +1048,6 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 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.11 h1:f/qXNc2/3DpoSZkHt1DQu6rj4zGC8JmkkLkWss0MgN0= nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= From 91e1768bd056ad5d8261fb8d701a4dd6dd7811a4 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 9 May 2024 16:33:11 -0400 Subject: [PATCH 43/72] go mod tidy for zititest --- zititest/go.mod | 42 +++--- zititest/go.sum | 371 ++++++------------------------------------------ 2 files changed, 63 insertions(+), 350 deletions(-) diff --git a/zititest/go.mod b/zititest/go.mod index a8a628c31..78b393048 100644 --- a/zititest/go.mod +++ b/zititest/go.mod @@ -11,14 +11,14 @@ require ( github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 github.com/gorilla/websocket v1.5.1 - github.com/michaelquigley/pfxlog v0.6.10 + github.com/michaelquigley/pfxlog v1.0.0 github.com/openziti/agent v1.0.16 github.com/openziti/channel/v2 v2.0.128 github.com/openziti/edge-api v0.26.18 github.com/openziti/fablab v0.5.55 github.com/openziti/foundation/v2 v2.0.42 github.com/openziti/identity v1.0.75 - github.com/openziti/sdk-golang v0.23.32 + github.com/openziti/sdk-golang v0.23.35 github.com/openziti/storage v0.2.37 github.com/openziti/transport/v2 v2.0.131 github.com/openziti/ziti v0.28.3 @@ -29,8 +29,8 @@ require ( github.com/spf13/cobra v1.8.0 github.com/stretchr/testify v1.9.0 go.etcd.io/bbolt v1.3.9 - golang.org/x/net v0.24.0 - google.golang.org/protobuf v1.33.0 + golang.org/x/net v0.25.0 + google.golang.org/protobuf v1.34.1 gopkg.in/yaml.v2 v2.4.0 ) @@ -80,13 +80,13 @@ require ( github.com/go-openapi/strfmt v0.23.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect github.com/go-openapi/validate v0.24.0 // indirect - github.com/go-resty/resty/v2 v2.12.0 // indirect + github.com/go-resty/resty/v2 v2.13.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/gomarkdown/markdown v0.0.0-20230922112808-5421fefb8386 // indirect github.com/gorilla/handlers v1.5.2 // indirect github.com/gorilla/mux v1.8.1 // indirect - github.com/gorilla/schema v1.2.1 // indirect + github.com/gorilla/schema v1.3.0 // indirect github.com/gorilla/securecookie v1.1.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect @@ -113,7 +113,7 @@ require ( 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-20240226150601-1dcf7310316a // indirect + github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -157,7 +157,7 @@ require ( github.com/russross/blackfriday v1.6.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.3 // indirect + github.com/shirou/gopsutil/v3 v3.24.4 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect github.com/sourcegraph/conc v0.3.0 // indirect @@ -168,8 +168,8 @@ require ( github.com/spf13/viper v1.18.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect - github.com/tklauser/go-sysconf v0.3.13 // indirect - github.com/tklauser/numcpus v0.7.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect @@ -179,22 +179,22 @@ require ( github.com/zitadel/oidc/v2 v2.12.0 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect - go.opentelemetry.io/otel v1.25.0 // indirect - go.opentelemetry.io/otel/metric v1.25.0 // indirect - go.opentelemetry.io/otel/trace v1.25.0 // indirect + go.opentelemetry.io/otel v1.26.0 // indirect + go.opentelemetry.io/otel/metric v1.26.0 // indirect + go.opentelemetry.io/otel/trace v1.26.0 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.9.0 // indirect go4.org v0.0.0-20180809161055-417644f6feb5 // indirect - golang.org/x/crypto v0.22.0 // indirect - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/crypto v0.23.0 // indirect + golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect golang.org/x/image v0.13.0 // indirect - golang.org/x/mod v0.16.0 // indirect - golang.org/x/oauth2 v0.19.0 // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/oauth2 v0.20.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.19.0 // indirect - golang.org/x/term v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.19.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/term v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect + golang.org/x/tools v0.21.0 // indirect gopkg.in/AlecAivazis/survey.v1 v1.8.8 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/resty.v1 v1.12.0 // indirect diff --git a/zititest/go.sum b/zititest/go.sum index 23cbe73e2..b0122e732 100644 --- a/zititest/go.sum +++ b/zititest/go.sum @@ -7,37 +7,11 @@ cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6A cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= @@ -81,7 +55,6 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ= @@ -104,7 +77,6 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c h1:qq7IeRYvCmew9ThhcfslD5XD25P/UsBxsTozk6ywF+A= github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c/go.mod h1:wdbXg77soR6ESRprAMEwAQDFtLT6EAGF5o1GRy0cB5k= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= @@ -120,15 +92,9 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-iptables v0.7.0 h1:XWM3V+MPRr5/q51NuWSgU0fqMad64Zyxs8ZUoMsamr8= @@ -136,7 +102,6 @@ github.com/coreos/go-iptables v0.7.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFE github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -172,12 +137,7 @@ github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75/go. github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= 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= @@ -208,8 +168,6 @@ github.com/go-acme/lego/v4 v4.16.1/go.mod h1:AVvwdPned/IWpD/ihHhMsKnveF7HHYAz/Cm github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U= github.com/go-jose/go-jose/v4 v4.0.1/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -244,38 +202,28 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= -github.com/go-resty/resty/v2 v2.12.0 h1:rsVL8P90LFvkUYq/V5BTVe203WfRIU4gvcf+yfzJzGA= -github.com/go-resty/resty/v2 v2.12.0/go.mod h1:o0yGPrkS3lOe1+eFajk6kBW8ScXzwU3hD69/gt2yB/0= +github.com/go-resty/resty/v2 v2.13.0 h1:joaL6wxSgm1OZal4FAAyddkL1T4uo5NxHYFkGmUusqE= +github.com/go-resty/resty/v2 v2.13.0/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -283,10 +231,6 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= @@ -299,13 +243,8 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= @@ -316,21 +255,9 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= @@ -342,8 +269,8 @@ github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyE github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/gorilla/schema v1.2.1 h1:tjDxcmdb+siIqkTNoV+qRH2mjYdr2hHe5MKXbp61ziM= -github.com/gorilla/schema v1.2.1/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= +github.com/gorilla/schema v1.3.0 h1:rbciOzXAx3IB8stEFnfTwO3sYa6EWlQk79XdyustPDA= +github.com/gorilla/schema v1.3.0/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -354,7 +281,6 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmg github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -400,8 +326,6 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174 h1:WlZsjVhE8Af9IcZDGgJGQpNflI3+MJSBhsgT5PCtzBQ= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= @@ -432,9 +356,7 @@ github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtL github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= 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/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= github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= @@ -443,7 +365,6 @@ github.com/kataras/go-events v0.0.3/go.mod h1:bFBgtzwwzrag7kQmGuU1ZaVxhK2qseYPQo 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/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/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.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -474,11 +395,10 @@ 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-20240226150601-1dcf7310316a h1:3Bm7EwfUQUvhNeKIkUct/gl9eod1TcXuj8stxvi/GoI= -github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= +github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74 h1:1KuuSOy4ZNgW0KA2oYIngXVFhQcXxhLqCVK7cBcldkk= +github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -528,8 +448,8 @@ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyex 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.3.1/go.mod h1:pwJmJ9nN787xk9U+0z8/5nP2GMhU6GGCTfgBWGpiXaQ= -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 v1.0.0 h1:1DbSQ/u3eEdt533yWd/zmxwtaZx9GQRRb+SD/DgLFag= +github.com/michaelquigley/pfxlog v1.0.0/go.mod h1:67bZY14oqZvB6kFHm8sVkEdu8A469UZaymGofQeJeQQ= 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.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs= @@ -546,7 +466,6 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4 github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -608,8 +527,8 @@ github.com/openziti/metrics v1.2.51 h1:+RfVdEGMOmhXBcC/gFIqXeNVnpWt9+cfrbCacFV/e github.com/openziti/metrics v1.2.51/go.mod h1:qvX8EKF8I42tA4KlNFX+RBx+ywNiVRvJTS4QofDU8KU= github.com/openziti/runzmd v1.0.43 h1:jQpDQ91I+6kbAM/2QV5s2900/CWgs3HyPhrpCNRQE6E= github.com/openziti/runzmd v1.0.43/go.mod h1:sTSSi4f3dcgO5w8PgSK4fGAlwR2ajexAlMcEtduuFaU= -github.com/openziti/sdk-golang v0.23.32 h1:GaY89LTikNO3PAHaHgeMUKYJ5aaGYaFiU2o2e37mJxE= -github.com/openziti/sdk-golang v0.23.32/go.mod h1:9PH2kfFge80Rxw/HyCPgsp2dntPbCsLAKB4ZjZFUovg= +github.com/openziti/sdk-golang v0.23.35 h1:7qWgkFIWBgCS+O8sho6hpqKBM7d3NENh5bSUs8wjMeY= +github.com/openziti/sdk-golang v0.23.35/go.mod h1:+eVyqtmY2STTIgtQ9Rze+iemkKM+hAFBWnjHT/u5NWo= github.com/openziti/secretstream v0.1.19 h1:qSX23lyOI5ROvYPTjy7Lo6eFsq9qBBPzaG5hvgLlw48= github.com/openziti/secretstream v0.1.19/go.mod h1:1n/Uk8PQEREwB7iQXhUzNqt+8jYEpUZOJDGcetMI08o= github.com/openziti/storage v0.2.37 h1:VpYtV049yDBkjZEdLQYkc9ixHpKscMXG+02K6pbOwE8= @@ -630,7 +549,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/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -638,7 +556,6 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.5.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo= github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= @@ -684,7 +601,6 @@ github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc 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= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= @@ -702,8 +618,8 @@ github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6g github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= 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.24.3 h1:eoUGJSmdfLzJ3mxIhmOAhgKEKgQkeOwKpz1NbhVnuPE= -github.com/shirou/gopsutil/v3 v3.24.3/go.mod h1:JpND7O217xa72ewWz9zN2eIIkPWsDN/3pl0H8Qt0uwg= +github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= +github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= 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.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= @@ -750,24 +666,19 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/speps/go-hashids v2.0.0+incompatible h1:kSfxGfESueJKTx0mpER9Y/1XHl+FVQjtCqRyYcviFbw= github.com/speps/go-hashids v2.0.0+incompatible/go.mod h1:P7hqPzMdnZOfyIk+xrlG1QaSMw+gCBdHKsBDnhpaZvc= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= @@ -798,11 +709,11 @@ github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cb github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4= -github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4= -github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= @@ -820,11 +731,7 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1: github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 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.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= @@ -833,9 +740,6 @@ github.com/zitadel/oidc/v2 v2.12.0/go.mod h1:LrRav74IiThHGapQgCHZOUNtnqJG0tcZKHr go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak= @@ -844,30 +748,23 @@ go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -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.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k= -go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg= -go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA= -go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s= +go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= +go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= +go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= +go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4= go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= -go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM= -go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I= +go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= +go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= 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/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.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/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90tenwKoCX93Gn3MAQJMOSBsDQ= @@ -882,7 +779,6 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -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-20191112222119-e1110fd1c708/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -891,21 +787,15 @@ 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.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= 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= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -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-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= +golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= 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= @@ -920,26 +810,15 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -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/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= -golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 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= @@ -959,58 +838,28 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -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-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.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= 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= 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= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.19.0 h1:9+E/EZBCbTLNrbN35fHv/a/d/mOBatymz1zbtQrXpIg= -golang.org/x/oauth2 v0.19.0/go.mod h1:vYi7skDa1x015PmRRYZ7+s1cWyPgrPiSYRe4rnsexc8= +golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= +golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1018,11 +867,7 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -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/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= @@ -1047,51 +892,28 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1106,35 +928,32 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= -golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= -golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= 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= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -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.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/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1157,45 +976,13 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= -golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 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= @@ -1208,32 +995,12 @@ google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1247,38 +1014,7 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -1286,22 +1022,7 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1310,12 +1031,9 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= 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.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/AlecAivazis/survey.v1 v1.8.8 h1:5UtTowJZTz1j7NxVzDGKTz6Lm9IWm8DDF6b7a2wq9VY= gopkg.in/AlecAivazis/survey.v1 v1.8.8/go.mod h1:CaHjv79TCgAvXMSFJSVgonHXYWxnhzI3eoHtnX5UgUo= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -1330,7 +1048,6 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= @@ -1346,7 +1063,6 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1355,7 +1071,6 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= @@ -1365,8 +1080,6 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 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.11 h1:f/qXNc2/3DpoSZkHt1DQu6rj4zGC8JmkkLkWss0MgN0= nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= From 058dbfe64e2ca40562c375cb8693fc55e103b706 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 9 May 2024 16:40:00 -0400 Subject: [PATCH 44/72] downgrade pfxlog --- go.mod | 2 +- go.sum | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 291 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index da2e97f4d..e084b4b4c 100644 --- a/go.mod +++ b/go.mod @@ -43,7 +43,7 @@ require ( github.com/kataras/go-events v0.0.3 github.com/lucsky/cuid v1.2.1 github.com/mdlayher/netlink v1.7.2 - github.com/michaelquigley/pfxlog v1.0.0 + github.com/michaelquigley/pfxlog v0.6.10 github.com/miekg/dns v1.1.59 github.com/mitchellh/mapstructure v1.5.0 github.com/natefinch/lumberjack v2.0.0+incompatible diff --git a/go.sum b/go.sum index 40f5aca0b..5a25af834 100644 --- a/go.sum +++ b/go.sum @@ -7,11 +7,37 @@ cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6A cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= @@ -54,6 +80,7 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= @@ -72,6 +99,7 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c h1:qq7IeRYvCmew9ThhcfslD5XD25P/UsBxsTozk6ywF+A= github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c/go.mod h1:wdbXg77soR6ESRprAMEwAQDFtLT6EAGF5o1GRy0cB5k= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4= @@ -86,9 +114,15 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-iptables v0.7.0 h1:XWM3V+MPRr5/q51NuWSgU0fqMad64Zyxs8ZUoMsamr8= @@ -96,6 +130,7 @@ github.com/coreos/go-iptables v0.7.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFE github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -132,7 +167,12 @@ github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75/go. github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= 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= @@ -163,6 +203,8 @@ github.com/go-acme/lego/v4 v4.16.1/go.mod h1:AVvwdPned/IWpD/ihHhMsKnveF7HHYAz/Cm github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U= github.com/go-jose/go-jose/v4 v4.0.1/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -200,25 +242,35 @@ github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1 github.com/go-resty/resty/v2 v2.13.0 h1:joaL6wxSgm1OZal4FAAyddkL1T4uo5NxHYFkGmUusqE= github.com/go-resty/resty/v2 v2.13.0/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -226,6 +278,10 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= @@ -238,8 +294,13 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= @@ -252,9 +313,21 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= @@ -278,6 +351,7 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmg github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -323,6 +397,8 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174 h1:WlZsjVhE8Af9IcZDGgJGQpNflI3+MJSBhsgT5PCtzBQ= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= @@ -344,7 +420,9 @@ github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtL github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= 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/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= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kataras/go-events v0.0.3 h1:o5YK53uURXtrlg7qE/vovxd/yKOJcLuFtPQbf1rYMC4= @@ -352,9 +430,11 @@ github.com/kataras/go-events v0.0.3/go.mod h1:bFBgtzwwzrag7kQmGuU1ZaVxhK2qseYPQo 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/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/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.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -384,6 +464,7 @@ github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74 h1:1KuuSOy4ZNgW0K github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -431,8 +512,8 @@ github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyex 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= github.com/michaelquigley/pfxlog v0.3.1/go.mod h1:pwJmJ9nN787xk9U+0z8/5nP2GMhU6GGCTfgBWGpiXaQ= -github.com/michaelquigley/pfxlog v1.0.0 h1:1DbSQ/u3eEdt533yWd/zmxwtaZx9GQRRb+SD/DgLFag= -github.com/michaelquigley/pfxlog v1.0.0/go.mod h1:67bZY14oqZvB6kFHm8sVkEdu8A469UZaymGofQeJeQQ= +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/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.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs= @@ -449,6 +530,7 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4 github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -524,6 +606,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/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -531,6 +614,7 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.5.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -574,6 +658,7 @@ github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc 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= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= @@ -639,19 +724,24 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/speps/go-hashids v2.0.0+incompatible h1:kSfxGfESueJKTx0mpER9Y/1XHl+FVQjtCqRyYcviFbw= github.com/speps/go-hashids v2.0.0+incompatible/go.mod h1:P7hqPzMdnZOfyIk+xrlG1QaSMw+gCBdHKsBDnhpaZvc= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= +github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -703,7 +793,11 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1: github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 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.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= @@ -712,6 +806,9 @@ github.com/zitadel/oidc/v2 v2.12.0/go.mod h1:LrRav74IiThHGapQgCHZOUNtnqJG0tcZKHr go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak= @@ -720,6 +817,10 @@ go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +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.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= @@ -729,14 +830,17 @@ go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35 go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= 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/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.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/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90tenwKoCX93Gn3MAQJMOSBsDQ= @@ -751,12 +855,14 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +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-20191112222119-e1110fd1c708/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= @@ -765,6 +871,11 @@ golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +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-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= @@ -781,13 +892,22 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +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/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= @@ -811,15 +931,36 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +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-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.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= @@ -830,6 +971,15 @@ golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAG golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/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= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= @@ -839,7 +989,11 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +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/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= @@ -864,28 +1018,51 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -905,6 +1082,7 @@ golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= @@ -915,7 +1093,10 @@ 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= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +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.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/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= @@ -924,6 +1105,7 @@ golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -946,10 +1128,41 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= @@ -966,12 +1179,32 @@ google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -985,7 +1218,38 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -993,7 +1257,22 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1002,7 +1281,10 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= 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.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/AlecAivazis/survey.v1 v1.8.8 h1:5UtTowJZTz1j7NxVzDGKTz6Lm9IWm8DDF6b7a2wq9VY= @@ -1019,6 +1301,7 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= @@ -1032,13 +1315,16 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= @@ -1048,6 +1334,8 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 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.11 h1:f/qXNc2/3DpoSZkHt1DQu6rj4zGC8JmkkLkWss0MgN0= nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= From aef5d75757e658073b2f0f14da6deac9b8244581 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 9 May 2024 16:49:15 -0400 Subject: [PATCH 45/72] downgrade pfxlog for zititest --- zititest/go.mod | 2 +- zititest/go.sum | 289 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 288 insertions(+), 3 deletions(-) diff --git a/zititest/go.mod b/zititest/go.mod index 78b393048..4dd81c579 100644 --- a/zititest/go.mod +++ b/zititest/go.mod @@ -11,7 +11,7 @@ require ( github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 github.com/gorilla/websocket v1.5.1 - github.com/michaelquigley/pfxlog v1.0.0 + github.com/michaelquigley/pfxlog v0.6.10 github.com/openziti/agent v1.0.16 github.com/openziti/channel/v2 v2.0.128 github.com/openziti/edge-api v0.26.18 diff --git a/zititest/go.sum b/zititest/go.sum index b0122e732..045dcf8fd 100644 --- a/zititest/go.sum +++ b/zititest/go.sum @@ -7,11 +7,37 @@ cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6A cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= @@ -55,6 +81,7 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ= @@ -77,6 +104,7 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c h1:qq7IeRYvCmew9ThhcfslD5XD25P/UsBxsTozk6ywF+A= github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c/go.mod h1:wdbXg77soR6ESRprAMEwAQDFtLT6EAGF5o1GRy0cB5k= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= @@ -92,9 +120,15 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-iptables v0.7.0 h1:XWM3V+MPRr5/q51NuWSgU0fqMad64Zyxs8ZUoMsamr8= @@ -102,6 +136,7 @@ github.com/coreos/go-iptables v0.7.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFE github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -137,7 +172,12 @@ github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75/go. github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= 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= @@ -168,6 +208,8 @@ github.com/go-acme/lego/v4 v4.16.1/go.mod h1:AVvwdPned/IWpD/ihHhMsKnveF7HHYAz/Cm github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U= github.com/go-jose/go-jose/v4 v4.0.1/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -205,25 +247,35 @@ github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1 github.com/go-resty/resty/v2 v2.13.0 h1:joaL6wxSgm1OZal4FAAyddkL1T4uo5NxHYFkGmUusqE= github.com/go-resty/resty/v2 v2.13.0/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -231,6 +283,10 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= @@ -243,8 +299,13 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= @@ -255,9 +316,21 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= @@ -281,6 +354,7 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmg github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -326,6 +400,8 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174 h1:WlZsjVhE8Af9IcZDGgJGQpNflI3+MJSBhsgT5PCtzBQ= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= @@ -356,7 +432,9 @@ github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtL github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= 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/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= github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= @@ -365,6 +443,7 @@ github.com/kataras/go-events v0.0.3/go.mod h1:bFBgtzwwzrag7kQmGuU1ZaVxhK2qseYPQo 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/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/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.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -399,6 +478,7 @@ github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74 h1:1KuuSOy4ZNgW0K github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -448,8 +528,8 @@ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyex 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.3.1/go.mod h1:pwJmJ9nN787xk9U+0z8/5nP2GMhU6GGCTfgBWGpiXaQ= -github.com/michaelquigley/pfxlog v1.0.0 h1:1DbSQ/u3eEdt533yWd/zmxwtaZx9GQRRb+SD/DgLFag= -github.com/michaelquigley/pfxlog v1.0.0/go.mod h1:67bZY14oqZvB6kFHm8sVkEdu8A469UZaymGofQeJeQQ= +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/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.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs= @@ -466,6 +546,7 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4 github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -549,6 +630,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/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -556,6 +638,7 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.5.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo= github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= @@ -601,6 +684,7 @@ github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc 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= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= @@ -666,19 +750,24 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/speps/go-hashids v2.0.0+incompatible h1:kSfxGfESueJKTx0mpER9Y/1XHl+FVQjtCqRyYcviFbw= github.com/speps/go-hashids v2.0.0+incompatible/go.mod h1:P7hqPzMdnZOfyIk+xrlG1QaSMw+gCBdHKsBDnhpaZvc= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= +github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= @@ -731,7 +820,11 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1: github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 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.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= @@ -740,6 +833,9 @@ github.com/zitadel/oidc/v2 v2.12.0/go.mod h1:LrRav74IiThHGapQgCHZOUNtnqJG0tcZKHr go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak= @@ -748,6 +844,10 @@ go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +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.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= @@ -757,14 +857,17 @@ go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35 go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= 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/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.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/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90tenwKoCX93Gn3MAQJMOSBsDQ= @@ -779,6 +882,7 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +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-20191112222119-e1110fd1c708/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -794,6 +898,11 @@ golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +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-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= @@ -810,11 +919,22 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +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/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= @@ -838,14 +958,34 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +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-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= @@ -858,6 +998,15 @@ golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAG golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/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= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= @@ -867,7 +1016,11 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +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/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= @@ -892,28 +1045,51 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -944,6 +1120,8 @@ 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= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +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.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/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= @@ -954,6 +1132,7 @@ golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -976,9 +1155,41 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= @@ -995,12 +1206,32 @@ google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1014,7 +1245,38 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -1022,7 +1284,22 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1031,7 +1308,10 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= 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.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/AlecAivazis/survey.v1 v1.8.8 h1:5UtTowJZTz1j7NxVzDGKTz6Lm9IWm8DDF6b7a2wq9VY= @@ -1048,6 +1328,7 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= @@ -1063,6 +1344,7 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1071,6 +1353,7 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= @@ -1080,6 +1363,8 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 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.11 h1:f/qXNc2/3DpoSZkHt1DQu6rj4zGC8JmkkLkWss0MgN0= nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= From 7c92f17e38f219f022fd4212237fdbd48321de14 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 9 May 2024 17:19:47 -0400 Subject: [PATCH 46/72] changelog for v1.1.2 --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6111ab7a..3bcd0cefd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +# Releaase 1.1.2 + +## What's New + +* Bug fixes and minor enhancements + +## Component Updates and Bug Fixes +* github.com/openziti/sdk-golang: [v0.23.32 -> v0.23.35](https://github.com/openziti/sdk-golang/compare/v0.23.32...v0.23.35) +* github.com/openziti/ziti: [v1.1.1 -> v1.1.2](https://github.com/openziti/ziti/compare/v1.1.1...v1.1.2) + * [Issue #2032](https://github.com/openziti/ziti/issues/2032) - Auto CA Enrollment Fails w/ 400 Bad Request + * [Issue #2026](https://github.com/openziti/ziti/issues/2026) - Root Version Endpoint Handling 404s + * [Issue #2002](https://github.com/openziti/ziti/issues/2002) - JWKS endpoints may not refresh on new KID + * [Issue #2007](https://github.com/openziti/ziti/issues/2007) - Identities for edge routers with tunneling enabled sometimes show hasEdgeRouterConnection=false even though everything is OK + * [Issue #1983](https://github.com/openziti/ziti/issues/1983) - delete of non-existent entity causes panic when run on follower controller + + # Release 1.1.1 ## What's New From d939996b345a0925b51abf668ab3eeb232c60428 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Thu, 9 May 2024 17:23:53 -0400 Subject: [PATCH 47/72] spelling --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bcd0cefd..236aef4ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Releaase 1.1.2 +# Release 1.1.2 ## What's New From e69548e0b545bbfcf0ac4f4ebd18f4da190ab99f Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Fri, 10 May 2024 14:12:30 -0400 Subject: [PATCH 48/72] always source SPA static files from amd64 image --- dist/docker-images/ziti-controller/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dist/docker-images/ziti-controller/Dockerfile b/dist/docker-images/ziti-controller/Dockerfile index a7b28ef01..38b57cf26 100644 --- a/dist/docker-images/ziti-controller/Dockerfile +++ b/dist/docker-images/ziti-controller/Dockerfile @@ -4,7 +4,8 @@ ARG ZITI_CLI_TAG="latest" ARG ZITI_CLI_IMAGE="docker.io/openziti/ziti-cli" # dependabot bumps this version based on release to Hub -FROM openziti/ziti-console-assets:3.1.0 as ziti-console +# only amd64 is available because only static assets are copied, not executables +FROM --platform=linux/amd64 openziti/ziti-console-assets:3.1.0 as ziti-console FROM ${ZITI_CLI_IMAGE}:${ZITI_CLI_TAG} From de4b926417a10ca4f34202b390ce8baee3421f50 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Fri, 10 May 2024 14:22:04 -0400 Subject: [PATCH 49/72] Fix terraform template on windows --- zititest/go.mod | 6 +++--- zititest/go.sum | 12 ++++++------ zititest/models/test_resources/terraform/main.tf | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/zititest/go.mod b/zititest/go.mod index 4dd81c579..7b9b910e1 100644 --- a/zititest/go.mod +++ b/zititest/go.mod @@ -15,7 +15,7 @@ require ( github.com/openziti/agent v1.0.16 github.com/openziti/channel/v2 v2.0.128 github.com/openziti/edge-api v0.26.18 - github.com/openziti/fablab v0.5.55 + github.com/openziti/fablab v0.5.60 github.com/openziti/foundation/v2 v2.0.42 github.com/openziti/identity v1.0.75 github.com/openziti/sdk-golang v0.23.35 @@ -45,7 +45,7 @@ require ( github.com/apapsch/go-jsonmerge/v2 v2.0.0 // 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.51.18 // indirect + github.com/aws/aws-sdk-go v1.52.6 // 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 @@ -101,7 +101,7 @@ require ( github.com/influxdata/influxdb-client-go/v2 v2.13.0 // indirect github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d // indirect github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839 // indirect - github.com/jedib0t/go-pretty/v6 v6.5.8 // indirect + github.com/jedib0t/go-pretty/v6 v6.5.9 // indirect github.com/jessevdk/go-flags v1.5.0 // indirect github.com/jinzhu/copier v0.4.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect diff --git a/zititest/go.sum b/zititest/go.sum index 045dcf8fd..a3c7b4f69 100644 --- a/zititest/go.sum +++ b/zititest/go.sum @@ -95,8 +95,8 @@ github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= 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.51.18 h1:JKrk49ZlBTyKa4+droU7U/hk0QG84v91xaA58O0LPdo= -github.com/aws/aws-sdk-go v1.51.18/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.52.6 h1:nw1AMg0wIj5tTnI89KaDe9G5aISqXm4KJEe1DfNbFvA= +github.com/aws/aws-sdk-go v1.52.6/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= @@ -412,8 +412,8 @@ github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d h1:/WZ 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 h1:W9WBk7wlPfJLvMCdtV4zPulc4uCPrlywQOmbFOhgQNU= github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/jedib0t/go-pretty/v6 v6.5.8 h1:8BCzJdSvUbaDuRba4YVh+SKMGcAAKdkcF3SVFbrHAtQ= -github.com/jedib0t/go-pretty/v6 v6.5.8/go.mod h1:zbn98qrYlh95FIhwwsbIip0LYpwSG8SUOScs+v9/t0E= +github.com/jedib0t/go-pretty/v6 v6.5.9 h1:ACteMBRrrmm1gMsXe9PSTOClQ63IXDUt03H5U+UV8OU= +github.com/jedib0t/go-pretty/v6 v6.5.9/go.mod h1:zbn98qrYlh95FIhwwsbIip0LYpwSG8SUOScs+v9/t0E= github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= github.com/jeremija/gosubmit v0.2.7 h1:At0OhGCFGPXyjPYAsCchoBUhE099pcBXmsb4iZqROIc= github.com/jeremija/gosubmit v0.2.7/go.mod h1:Ui+HS073lCFREXBbdfrJzMB57OI/bdxTiLtrDHHhFPI= @@ -596,8 +596,8 @@ github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAP github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= github.com/openziti/edge-api v0.26.18 h1:5V2Hr7gybCrg/XPlqjz3Z8nsCUBsqOm40HjXerYVlqw= github.com/openziti/edge-api v0.26.18/go.mod h1:FGkZr+55qItptJBHriogJDo64OY85kuiEEWEZsik0+A= -github.com/openziti/fablab v0.5.55 h1:J2C9xV5L87m6ukpU/r+vY4FfCq5SjPpCDV7wCVQ77Ns= -github.com/openziti/fablab v0.5.55/go.mod h1:QbKQZrhXCQfwRAyYuO/bpLd6JZJQ3A8/ugGi0fBrlWg= +github.com/openziti/fablab v0.5.60 h1:RsqrEb3LV6asK5N97uZKyNSDhcNOeDcAuT4OAD/hY9Y= +github.com/openziti/fablab v0.5.60/go.mod h1:B/ib+GOtozEIytv2aXSFl9+dL7AiGfbpGS/VjnNduU8= github.com/openziti/foundation/v2 v2.0.42 h1:cXZFql3xY92AHPCk/wqIoSUX9EHgegwPrs5bhFE2jNg= github.com/openziti/foundation/v2 v2.0.42/go.mod h1:a+REYnK9bZ2cvmOiuBLp57MjQqn3U5cHhJcDMLMO8rE= github.com/openziti/identity v1.0.75 h1:FDm3ZojmmGP9eoOxMvmF52RS6JzToTTeWB0pthIA+ks= diff --git a/zititest/models/test_resources/terraform/main.tf b/zititest/models/test_resources/terraform/main.tf index efde51cad..181426912 100644 --- a/zititest/models/test_resources/terraform/main.tf +++ b/zititest/models/test_resources/terraform/main.tf @@ -9,7 +9,7 @@ variable "public_cidr" { default = "10.0.0.0/24" } {{ range $regionId, $region := .Model.Regions }} module "{{ $regionId }}_region" { - source = "{{ $.TerraformLib }}/vpc" + source = "{{ $.TerraformLib }}{{ $.PathSeparator }}vpc" access_key = var.aws_access_key secret_key = var.aws_secret_key region = "{{ $region.Region }}" @@ -21,7 +21,7 @@ module "{{ $regionId }}_region" { {{ range $hostId, $host := $region.Hosts }} module "{{ $regionId }}_host_{{ $hostId }}" { - source = "{{ $.TerraformLib }}/{{ instanceTemplate $host }}_instance" + source = "{{ $.TerraformLib }}{{ $.PathSeparator }}{{ instanceTemplate $host }}_instance" access_key = var.aws_access_key secret_key = var.aws_secret_key environment_tag = var.environment_tag From a4d04f71c7e458b58be06413cb0e802050e26df3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 15:52:25 +0000 Subject: [PATCH 50/72] Bump golangci/golangci-lint-action from 5 to 6 in the all group Bumps the all group with 1 update: [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action). Updates `golangci/golangci-lint-action` from 5 to 6 - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v5...v6) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: all ... Signed-off-by: dependabot[bot] --- .github/workflows/golangci-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index f335cdb5e..d721730fb 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -25,7 +25,7 @@ jobs: go-version-file: ./go.mod - name: golangci-lint - uses: golangci/golangci-lint-action@v5 + uses: golangci/golangci-lint-action@v6 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version version: v1.57.2 From 03b54d68f2adfb983bc18f7b156aeb0c7af54c29 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Tue, 14 May 2024 08:57:13 -0400 Subject: [PATCH 51/72] Enable router debug. Make logs json formatted for absolute timestamps. --- zititest/models/smoke/smoketest.go | 12 +++++++++--- zititest/zitilab/component_common.go | 6 +++--- zititest/zitilab/component_controller.go | 7 ++++++- zititest/zitilab/component_router.go | 7 ++++++- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/zititest/models/smoke/smoketest.go b/zititest/models/smoke/smoketest.go index 1de5272a5..3d0531ced 100644 --- a/zititest/models/smoke/smoketest.go +++ b/zititest/models/smoke/smoketest.go @@ -155,7 +155,9 @@ var Model = &model.Model{ Components: model.Components{ "router-east-1": { Scope: model.Scope{Tags: model.Tags{"edge-router", "terminator", "tunneler", "client"}}, - Type: &zitilab.RouterType{}, + Type: &zitilab.RouterType{ + Debug: true, + }, }, "zcat": { Scope: model.Scope{Tags: model.Tags{"sdk-app", "client"}}, @@ -167,7 +169,9 @@ var Model = &model.Model{ Components: model.Components{ "router-east-2": { Scope: model.Scope{Tags: model.Tags{"edge-router", "initiator"}}, - Type: &zitilab.RouterType{}, + Type: &zitilab.RouterType{ + Debug: true, + }, }, }, }, @@ -211,7 +215,9 @@ var Model = &model.Model{ Components: model.Components{ "router-west": { Scope: model.Scope{Tags: model.Tags{"edge-router", "tunneler", "host", "ert-host"}}, - Type: &zitilab.RouterType{}, + Type: &zitilab.RouterType{ + Debug: true, + }, }, "echo-server": { Scope: model.Scope{Tags: model.Tags{"sdk-app", "service"}}, diff --git a/zititest/zitilab/component_common.go b/zititest/zitilab/component_common.go index 6174f7929..0280828bb 100644 --- a/zititest/zitilab/component_common.go +++ b/zititest/zitilab/component_common.go @@ -35,7 +35,7 @@ func getZitiProcessFilter(c *model.Component, zitiType string) func(string) bool } } -func startZitiComponent(c *model.Component, zitiType string, version string, configName string) error { +func startZitiComponent(c *model.Component, zitiType string, version string, configName string, extraArgs string) error { user := c.GetHost().GetSshUser() binaryPath := GetZitiBinaryPath(c, version) @@ -47,8 +47,8 @@ func startZitiComponent(c *model.Component, zitiType string, version string, con useSudo = "sudo" } - serviceCmd := fmt.Sprintf("nohup %s %s %s run --cli-agent-alias %s --log-formatter pfxlog %s > %s 2>&1 &", - useSudo, binaryPath, zitiType, c.Id, configPath, logsPath) + serviceCmd := fmt.Sprintf("nohup %s %s %s run %s --cli-agent-alias %s --log-formatter json %s > %s 2>&1 &", + useSudo, binaryPath, zitiType, extraArgs, c.Id, configPath, logsPath) if quiet, _ := c.GetBoolVariable("quiet_startup"); !quiet { logrus.Info(serviceCmd) diff --git a/zititest/zitilab/component_controller.go b/zititest/zitilab/component_controller.go index d641318f7..5f280cc94 100644 --- a/zititest/zitilab/component_controller.go +++ b/zititest/zitilab/component_controller.go @@ -43,6 +43,7 @@ type ControllerType struct { Version string LocalPath string DNSNames []string + Debug bool } func (self *ControllerType) Label() string { @@ -121,7 +122,11 @@ func (self *ControllerType) Start(r model.Run, c *model.Component) error { fmt.Printf("controller %s already started\n", c.Id) return nil } - return startZitiComponent(c, "controller", self.Version, self.getConfigName(c)) + extraArgs := "" + if self.Debug { + extraArgs = " -v " + } + return startZitiComponent(c, "controller", self.Version, self.getConfigName(c), extraArgs) } func (self *ControllerType) Stop(_ model.Run, c *model.Component) error { diff --git a/zititest/zitilab/component_router.go b/zititest/zitilab/component_router.go index 89123e0e9..65d397161 100644 --- a/zititest/zitilab/component_router.go +++ b/zititest/zitilab/component_router.go @@ -42,6 +42,7 @@ type RouterType struct { ConfigName string Version string LocalPath string + Debug bool } func (self *RouterType) Label() string { @@ -128,7 +129,11 @@ func (self *RouterType) Start(r model.Run, c *model.Component) error { fmt.Printf("router %s already started\n", c.Id) return nil } - return startZitiComponent(c, "router", self.Version, self.GetConfigName(c)) + extraArgs := "" + if self.Debug { + extraArgs = " -v " + } + return startZitiComponent(c, "router", self.Version, self.GetConfigName(c), extraArgs) } func (self *RouterType) Stop(run model.Run, c *model.Component) error { From 597093d442fecfadb438751e81ac283f1d0d2d8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 15:22:21 +0000 Subject: [PATCH 52/72] Bump the openziti group across 1 directory with 10 updates Bumps the openziti group with 6 updates in the / directory: | Package | From | To | | --- | --- | --- | | [github.com/openziti/channel/v2](https://github.com/openziti/channel) | `2.0.128` | `2.0.130` | | [github.com/openziti/edge-api](https://github.com/openziti/edge-api) | `0.26.18` | `0.26.19` | | [github.com/openziti/metrics](https://github.com/openziti/metrics) | `1.2.51` | `1.2.54` | | [github.com/openziti/runzmd](https://github.com/openziti/runzmd) | `1.0.43` | `1.0.47` | | [github.com/openziti/sdk-golang](https://github.com/openziti/sdk-golang) | `0.23.35` | `0.23.37` | | [github.com/openziti/storage](https://github.com/openziti/storage) | `0.2.37` | `0.2.41` | Updates `github.com/openziti/channel/v2` from 2.0.128 to 2.0.130 - [Commits](https://github.com/openziti/channel/compare/v2.0.128...v2.0.130) Updates `github.com/openziti/edge-api` from 0.26.18 to 0.26.19 - [Release notes](https://github.com/openziti/edge-api/releases) - [Commits](https://github.com/openziti/edge-api/compare/v0.26.18...v0.26.19) Updates `github.com/openziti/foundation/v2` from 2.0.42 to 2.0.44 - [Commits](https://github.com/openziti/foundation/compare/v2.0.42...v2.0.44) Updates `github.com/openziti/identity` from 1.0.75 to 1.0.77 - [Commits](https://github.com/openziti/identity/compare/v1.0.75...v1.0.77) Updates `github.com/openziti/metrics` from 1.2.51 to 1.2.54 - [Commits](https://github.com/openziti/metrics/compare/v1.2.51...v1.2.54) Updates `github.com/openziti/runzmd` from 1.0.43 to 1.0.47 - [Commits](https://github.com/openziti/runzmd/compare/v1.0.43...v1.0.47) Updates `github.com/openziti/sdk-golang` from 0.23.35 to 0.23.37 - [Release notes](https://github.com/openziti/sdk-golang/releases) - [Changelog](https://github.com/openziti/sdk-golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/openziti/sdk-golang/compare/v0.23.35...v0.23.37) Updates `github.com/openziti/secretstream` from 0.1.19 to 0.1.20 - [Release notes](https://github.com/openziti/secretstream/releases) - [Commits](https://github.com/openziti/secretstream/compare/v0.1.19...v0.1.20) Updates `github.com/openziti/storage` from 0.2.37 to 0.2.41 - [Commits](https://github.com/openziti/storage/compare/v0.2.37...v0.2.41) Updates `github.com/openziti/transport/v2` from 2.0.131 to 2.0.133 - [Commits](https://github.com/openziti/transport/compare/v2.0.131...v2.0.133) --- updated-dependencies: - dependency-name: github.com/openziti/channel/v2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: openziti - dependency-name: github.com/openziti/edge-api dependency-type: direct:production update-type: version-update:semver-patch dependency-group: openziti - dependency-name: github.com/openziti/foundation/v2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: openziti - dependency-name: github.com/openziti/identity dependency-type: direct:production update-type: version-update:semver-patch dependency-group: openziti - dependency-name: github.com/openziti/metrics dependency-type: direct:production update-type: version-update:semver-patch dependency-group: openziti - dependency-name: github.com/openziti/runzmd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: openziti - dependency-name: github.com/openziti/sdk-golang dependency-type: direct:production update-type: version-update:semver-patch dependency-group: openziti - dependency-name: github.com/openziti/secretstream dependency-type: direct:production update-type: version-update:semver-patch dependency-group: openziti - dependency-name: github.com/openziti/storage dependency-type: direct:production update-type: version-update:semver-patch dependency-group: openziti - dependency-name: github.com/openziti/transport/v2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: openziti ... Signed-off-by: dependabot[bot] --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index e084b4b4c..854ec9a58 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663 github.com/ef-ds/deque v1.0.4 github.com/emirpasic/gods v1.18.1 - github.com/fatih/color v1.16.0 + github.com/fatih/color v1.17.0 github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa github.com/gaissmai/extnetip v0.4.0 github.com/go-acme/lego/v4 v4.16.1 @@ -25,7 +25,7 @@ require ( github.com/go-openapi/strfmt v0.23.0 github.com/go-openapi/swag v0.23.0 github.com/go-openapi/validate v0.24.0 - github.com/go-resty/resty/v2 v2.13.0 + github.com/go-resty/resty/v2 v2.13.1 github.com/golang-jwt/jwt/v5 v5.2.1 github.com/google/go-cmp v0.6.0 github.com/google/gopacket v1.1.19 @@ -48,17 +48,17 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/natefinch/lumberjack v2.0.0+incompatible github.com/openziti/agent v1.0.16 - github.com/openziti/channel/v2 v2.0.128 - github.com/openziti/edge-api v0.26.18 - github.com/openziti/foundation/v2 v2.0.42 - github.com/openziti/identity v1.0.75 + github.com/openziti/channel/v2 v2.0.130 + github.com/openziti/edge-api v0.26.19 + github.com/openziti/foundation/v2 v2.0.45 + github.com/openziti/identity v1.0.77 github.com/openziti/jwks v1.0.3 - github.com/openziti/metrics v1.2.51 - github.com/openziti/runzmd v1.0.43 - github.com/openziti/sdk-golang v0.23.35 - github.com/openziti/secretstream v0.1.19 - github.com/openziti/storage v0.2.37 - github.com/openziti/transport/v2 v2.0.131 + github.com/openziti/metrics v1.2.54 + github.com/openziti/runzmd v1.0.47 + github.com/openziti/sdk-golang v0.23.37 + github.com/openziti/secretstream v0.1.20 + github.com/openziti/storage v0.2.41 + github.com/openziti/transport/v2 v2.0.133 github.com/openziti/x509-claims v1.0.3 github.com/openziti/xweb/v2 v2.1.0 github.com/openziti/ziti-db-explorer v1.1.3 diff --git a/go.sum b/go.sum index 5a25af834..cb99e6504 100644 --- a/go.sum +++ b/go.sum @@ -177,8 +177,8 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 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.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= @@ -239,8 +239,8 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= -github.com/go-resty/resty/v2 v2.13.0 h1:joaL6wxSgm1OZal4FAAyddkL1T4uo5NxHYFkGmUusqE= -github.com/go-resty/resty/v2 v2.13.0/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -568,30 +568,30 @@ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYr github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/openziti/agent v1.0.16 h1:9Saji+8hFE1NpzP2XzDhsVJbCrDlhixoLHfOpFt5Z+U= github.com/openziti/agent v1.0.16/go.mod h1:zfm53+PVWoGFzjGGgQdKby5749G6VRYHe+eQJmoVKy4= -github.com/openziti/channel/v2 v2.0.128 h1:kRigyUmrN1q56ydRmBWzruV0DvVntYx/f2DT2P0qSh4= -github.com/openziti/channel/v2 v2.0.128/go.mod h1:ugebO2eO2CdaVQE45o20iE4R9DK0VRoJsGBZt0x3eLc= +github.com/openziti/channel/v2 v2.0.130 h1:YFIz8xk2XabJXJ8cfG1s6OWPgPnMf9hUdaECqimum88= +github.com/openziti/channel/v2 v2.0.130/go.mod h1:rY6Uq/kewSF0UTUb8B80y2CcrG4w/oYAL3gsperHb4g= 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-api v0.26.18 h1:5V2Hr7gybCrg/XPlqjz3Z8nsCUBsqOm40HjXerYVlqw= -github.com/openziti/edge-api v0.26.18/go.mod h1:FGkZr+55qItptJBHriogJDo64OY85kuiEEWEZsik0+A= -github.com/openziti/foundation/v2 v2.0.42 h1:cXZFql3xY92AHPCk/wqIoSUX9EHgegwPrs5bhFE2jNg= -github.com/openziti/foundation/v2 v2.0.42/go.mod h1:a+REYnK9bZ2cvmOiuBLp57MjQqn3U5cHhJcDMLMO8rE= -github.com/openziti/identity v1.0.75 h1:FDm3ZojmmGP9eoOxMvmF52RS6JzToTTeWB0pthIA+ks= -github.com/openziti/identity v1.0.75/go.mod h1:ouF+CYh5ywvvMr0Uy1+tbkILIPTdob5WZEnm3v0bPMQ= +github.com/openziti/edge-api v0.26.19 h1:EqDxmQGQEZ9ngzoFBlI/P7bL+0Xif29GRO8LWKdyYPI= +github.com/openziti/edge-api v0.26.19/go.mod h1:FGkZr+55qItptJBHriogJDo64OY85kuiEEWEZsik0+A= +github.com/openziti/foundation/v2 v2.0.45 h1:Dj/CWwV4w0dGCRrAThF0JgZTZ7z4snF1cROCdJeGUKY= +github.com/openziti/foundation/v2 v2.0.45/go.mod h1:88UifYC+Ia6VBQkGgszao/ixi8ymRME0werGo3fI55g= +github.com/openziti/identity v1.0.77 h1:61OoLPeEmnIOOM1U8XlahiC7W/ohhUT3cc0EVZDmfLI= +github.com/openziti/identity v1.0.77/go.mod h1:spm5DvKTn5Q3NcpfOEqYw7PfreuOZ0mmhH+PbGdoYMI= 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.51 h1:+RfVdEGMOmhXBcC/gFIqXeNVnpWt9+cfrbCacFV/e3w= -github.com/openziti/metrics v1.2.51/go.mod h1:qvX8EKF8I42tA4KlNFX+RBx+ywNiVRvJTS4QofDU8KU= -github.com/openziti/runzmd v1.0.43 h1:jQpDQ91I+6kbAM/2QV5s2900/CWgs3HyPhrpCNRQE6E= -github.com/openziti/runzmd v1.0.43/go.mod h1:sTSSi4f3dcgO5w8PgSK4fGAlwR2ajexAlMcEtduuFaU= -github.com/openziti/sdk-golang v0.23.35 h1:7qWgkFIWBgCS+O8sho6hpqKBM7d3NENh5bSUs8wjMeY= -github.com/openziti/sdk-golang v0.23.35/go.mod h1:+eVyqtmY2STTIgtQ9Rze+iemkKM+hAFBWnjHT/u5NWo= -github.com/openziti/secretstream v0.1.19 h1:qSX23lyOI5ROvYPTjy7Lo6eFsq9qBBPzaG5hvgLlw48= -github.com/openziti/secretstream v0.1.19/go.mod h1:1n/Uk8PQEREwB7iQXhUzNqt+8jYEpUZOJDGcetMI08o= -github.com/openziti/storage v0.2.37 h1:VpYtV049yDBkjZEdLQYkc9ixHpKscMXG+02K6pbOwE8= -github.com/openziti/storage v0.2.37/go.mod h1:1fIRgTNyzqoVuC/wAXqpL+QQra+t3MVHp//2XIeG6HM= -github.com/openziti/transport/v2 v2.0.131 h1:K1h3sl04QWQdYGSPSI1aZLufrL44Azw4WmdprzkIMxo= -github.com/openziti/transport/v2 v2.0.131/go.mod h1:N+OPeoqIuZwS72q0XnM4DLHVdKZ3ZOR37rqjOjWA0b8= +github.com/openziti/metrics v1.2.54 h1:NVN/762XqOwUDThwxcpzT/Tc+f+zGUNLvllhMRGTF70= +github.com/openziti/metrics v1.2.54/go.mod h1:5JWuoncTKps8xPdicS8RUloPyu24Q1S4zaG7E8B+Evc= +github.com/openziti/runzmd v1.0.47 h1:w/GopNNwfrkwHgfvFNS0KS8vDtHs4yhypJrporVlyTY= +github.com/openziti/runzmd v1.0.47/go.mod h1:PbsrBZGQXlICIZX24bCT/7Lnos8WZg1GKzjhC2YwAxA= +github.com/openziti/sdk-golang v0.23.37 h1:r7bdmSpqv9y2sCS7p7I42kxAGEflp8pahPQsN9ZKAB0= +github.com/openziti/sdk-golang v0.23.37/go.mod h1:FYFDyzApbyuE6Q7W3uqL0RNWdw/PQZsrMT4zoxGY/04= +github.com/openziti/secretstream v0.1.20 h1:9KOgXkUddf9KHur+B805a8wP0J447AO6Pmtz+eanub0= +github.com/openziti/secretstream v0.1.20/go.mod h1:TteVDQqouIoZgkwZhfiVdbnPNP3m87ik7kg/l9ahXzI= +github.com/openziti/storage v0.2.41 h1:fvbVZr+72+/LJXhtahwGLLj/Ucv/lgEOtBFqOnXf+00= +github.com/openziti/storage v0.2.41/go.mod h1:FSU6WmVMFHB6Z1NVGx5yxWjrDQbYPNrDmPNTgVDgrcM= +github.com/openziti/transport/v2 v2.0.133 h1:fWuADiwvb77mhuIF5F/SIiefiGx2GkrxYPDHLtqNwms= +github.com/openziti/transport/v2 v2.0.133/go.mod h1:UJ2bj41g5Ep7fKvwypS/dGYMKRKPvQPGG/OwB2H84Vw= 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.1.0 h1:Xhh3C2pZkq/Prr65V+SfFSibLDYteoc4f62KQCcTZF4= From f19acb066e566fe1f2fb317588b431ffa13f04e4 Mon Sep 17 00:00:00 2001 From: r-caamano Date: Mon, 20 May 2024 20:36:00 +0000 Subject: [PATCH 53/72] adding "-s" switch to diverter for service id tracking --- tunnel/intercept/tproxy/tproxy_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tunnel/intercept/tproxy/tproxy_linux.go b/tunnel/intercept/tproxy/tproxy_linux.go index fa126ac57..dac83fbe8 100644 --- a/tunnel/intercept/tproxy/tproxy_linux.go +++ b/tunnel/intercept/tproxy/tproxy_linux.go @@ -532,7 +532,7 @@ func (self *tProxy) addInterceptAddr(interceptAddr *intercept.InterceptAddress, cmd := exec.Command(self.interceptor.diverter, "-I", "-c", cidr[0], "-m", cidr[1], "-p", interceptAddr.Proto(), "-l", fmt.Sprintf("%d", interceptAddr.LowPort()), "-h", fmt.Sprintf("%d", interceptAddr.HighPort()), - "-t", fmt.Sprintf("%d", port.GetPort())) + "-t", fmt.Sprintf("%d", port.GetPort()), "-s", *service.ID) cmdLogger := pfxlog.Logger().WithField("command", cmd.String()) cmdLogger.Debug("running external diverter") out, err := cmd.CombinedOutput() From 848f9c74bbc38d5f706b515b5c129298a566de23 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Mon, 20 May 2024 16:43:44 -0400 Subject: [PATCH 54/72] add ExecStart override example --- .../ziti-controller.service.override.conf | 6 ++++++ .../linux/openziti-router/ziti-router.service.override.conf | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/dist/dist-packages/linux/openziti-controller/ziti-controller.service.override.conf b/dist/dist-packages/linux/openziti-controller/ziti-controller.service.override.conf index fcc1c3375..ad9af724e 100644 --- a/dist/dist-packages/linux/openziti-controller/ziti-controller.service.override.conf +++ b/dist/dist-packages/linux/openziti-controller/ziti-controller.service.override.conf @@ -15,3 +15,9 @@ LoadCredential=ZITI_PWD:/opt/openziti/etc/controller/.pwd # proxy # AmbientCapabilities=CAP_NET_BIND_SERVICE +# +## Optional Parameters +# +# you must re-initialize with an empty ExecStart value before setting a new start command +# ExecStart= +# ExecStart=/opt/openziti/etc/controller/entrypoint.bash run config.yml --verbose diff --git a/dist/dist-packages/linux/openziti-router/ziti-router.service.override.conf b/dist/dist-packages/linux/openziti-router/ziti-router.service.override.conf index 8f824dda8..8b9a477f3 100644 --- a/dist/dist-packages/linux/openziti-router/ziti-router.service.override.conf +++ b/dist/dist-packages/linux/openziti-router/ziti-router.service.override.conf @@ -12,3 +12,9 @@ LoadCredential=ZITI_ENROLL_TOKEN:/opt/openziti/etc/router/.token # allow adding IP routes and iptables rules; required when ZITI_ROUTER_MODE=tproxy # AmbientCapabilities=CAP_NET_ADMIN +# +## Optional Parameters +# +# you must re-initialize with an empty ExecStart value before setting a new start command +# ExecStart= +# ExecStart=/opt/openziti/etc/router/entrypoint.bash run config.yml --verbose From d793bb0f4713d3eea45c36577b58d90ab541595f Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Thu, 16 May 2024 09:42:29 -0400 Subject: [PATCH 55/72] use caddy for smoketest file serving instead of S3 --- common/getziti/github.go | 49 +++++-- common/getziti/install_ziti.go | 10 +- common/getziti/install_ziti_edge_tunnel.go | 4 +- ziti/constants/constants.go | 18 +-- ziti/util/updates.go | 2 +- zititest/models/smoke/actions/bootstrap.go | 8 +- zititest/models/smoke/actions/start.go | 1 + zititest/models/smoke/configs/Caddyfile.tmpl | 15 ++ zititest/models/smoke/smoketest.go | 24 ++- zititest/models/smoke/tests.go | 6 +- .../test_resources/terraform/vpc/main.tf | 12 ++ zititest/zitilab/component_caddy.go | 138 ++++++++++++++++++ zititest/zitilab/stageziti/stageziti.go | 19 +++ 13 files changed, 269 insertions(+), 37 deletions(-) create mode 100644 zititest/models/smoke/configs/Caddyfile.tmpl create mode 100644 zititest/zitilab/component_caddy.go diff --git a/common/getziti/github.go b/common/getziti/github.go index ee7daaddb..3e46a24ac 100644 --- a/common/getziti/github.go +++ b/common/getziti/github.go @@ -34,6 +34,10 @@ func (self *GitHubReleasesData) GetDownloadUrl(appName string, targetOS, targetA } for _, asset := range self.Assets { + if !strings.HasSuffix(asset.BrowserDownloadURL, ".zip") && + !strings.HasSuffix(asset.BrowserDownloadURL, ".tar.gz") { + continue + } ok := false for _, arch := range arches { if strings.Contains(strings.ToLower(asset.BrowserDownloadURL), arch) { @@ -65,21 +69,21 @@ func getRequest(verbose bool) *resty.Request { R() } -func GetLatestGitHubReleaseVersion(zitiApp string, verbose bool) (semver.Version, error) { +func GetLatestGitHubReleaseVersion(org, zitiApp string, verbose bool) (semver.Version, error) { var result semver.Version - release, err := GetHighestVersionGitHubReleaseInfo(zitiApp, verbose) + release, err := GetHighestVersionGitHubReleaseInfo(org, zitiApp, verbose) if release != nil { result = release.SemVer } return result, err } -func GetHighestVersionGitHubReleaseInfo(appName string, verbose bool) (*GitHubReleasesData, error) { +func GetHighestVersionGitHubReleaseInfo(org, 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") + Get(fmt.Sprintf("https://api.github.com/repos/%s/%s/releases", org, appName)) if err != nil { return nil, errors.Wrapf(err, "unable to get latest version for '%s'", appName) @@ -113,13 +117,13 @@ func GetHighestVersionRelease(appName string, releases []*GitHubReleasesData) (* return releases[0], nil } -func GetLatestGitHubReleaseAsset(appName string, appGitHub string, version string, verbose bool) (*GitHubReleasesData, error) { +func GetLatestGitHubReleaseAsset(org, 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" || appName == "ziti-edge-tunnel" || appName == "zrok" { + if appName == "ziti" || appName == "ziti-edge-tunnel" || appName == "zrok" || appName == "caddy" { if !strings.HasPrefix(version, "v") { version = "v" + version } @@ -138,7 +142,7 @@ func GetLatestGitHubReleaseAsset(appName string, appGitHub string, version strin SetQueryParams(map[string]string{}). SetHeader("Accept", "application/vnd.github.v3+json"). SetResult(&GitHubReleasesData{}). - Get("https://api.github.com/repos/openziti/" + appGitHub + "/releases/" + version) + Get(fmt.Sprintf("https://api.github.com/repos/%s/%s/releases/%s", org, appGitHub, version)) if err != nil { return nil, fmt.Errorf("unable to get latest version for '%s'; %s", appName, err) @@ -177,7 +181,7 @@ func DownloadGitHubReleaseAsset(fullUrl string, filepath string) (err error) { return nil } -func FindVersionAndInstallGitHubRelease(zitiApp string, zitiAppGitHub string, targetOS, targetArch string, binDir string, version string, verbose bool) error { +func FindVersionAndInstallGitHubRelease(org, app string, zitiAppGitHub string, targetOS, targetArch string, binDir string, version string, verbose bool) error { releaseVersion := version if version != "" && version != "latest" { if _, err := semver.Make(strings.TrimPrefix(version, "v")); err != nil { @@ -185,18 +189,18 @@ func FindVersionAndInstallGitHubRelease(zitiApp string, zitiAppGitHub string, ta } } else { version = "latest" - v, err := GetLatestGitHubReleaseVersion(zitiApp, verbose) + v, err := GetLatestGitHubReleaseVersion(org, app, verbose) if err != nil { return err } releaseVersion = v.String() } - release, err := GetLatestGitHubReleaseAsset(zitiApp, zitiAppGitHub, releaseVersion, verbose) + release, err := GetLatestGitHubReleaseAsset(org, app, zitiAppGitHub, releaseVersion, verbose) if err != nil { return err } - return InstallGitHubRelease(zitiApp, release, binDir, targetOS, targetArch, version) + return InstallGitHubRelease(app, release, binDir, targetOS, targetArch, version) } func InstallGitHubRelease(zitiApp string, release *GitHubReleasesData, binDir string, targetOS, targetArch, version string) error { @@ -305,6 +309,29 @@ func InstallGitHubRelease(zitiApp string, release *GitHubReleasesData, binDir st return errors.Errorf("didn't find zrok executable in release archive. count: %v", count) } + pfxlog.Logger().Infof("Successfully installed '%s' version '%s' to %s", zitiApp, release.Version, filepath.Join(binDir, zitiFileName)) + return nil + } else if zitiApp == c.Caddy { + count := 0 + zitiFileName := "caddy-" + version + expectedPath := "caddy" + + err = UnTarGz(fullPath, binDir, func(path string) (string, bool) { + if path == expectedPath { + count++ + return zitiFileName, true + } + return "", false + }) + + if err != nil { + return err + } + + if count != 1 { + return errors.Errorf("didn't find caddy executable in release archive. count: %v", count) + } + pfxlog.Logger().Infof("Successfully installed '%s' version '%s' to %s", zitiApp, release.Version, filepath.Join(binDir, zitiFileName)) return nil } else { diff --git a/common/getziti/install_ziti.go b/common/getziti/install_ziti.go index 1bdbaf0c3..96ab81131 100644 --- a/common/getziti/install_ziti.go +++ b/common/getziti/install_ziti.go @@ -8,11 +8,17 @@ import ( func InstallZiti(targetVersion, targetOS, targetArch, binDir string, verbose bool) error { fmt.Println("Attempting to install '" + c.ZITI + "' version: " + targetVersion) return FindVersionAndInstallGitHubRelease( - c.ZITI, c.ZITI, targetOS, targetArch, binDir, targetVersion, verbose) + c.OpenZitiOrg, c.ZITI, c.ZITI, targetOS, targetArch, binDir, targetVersion, verbose) } func InstallZrok(targetVersion, targetOS, targetArch, binDir string, verbose bool) error { fmt.Println("Attempting to install '" + c.ZROK + "' version: " + targetVersion) return FindVersionAndInstallGitHubRelease( - c.ZROK, c.ZROK, targetOS, targetArch, binDir, targetVersion, verbose) + c.OpenZitiOrg, c.ZROK, c.ZROK, targetOS, targetArch, binDir, targetVersion, verbose) +} + +func InstallCaddy(targetVersion, targetOS, targetArch, binDir string, verbose bool) error { + fmt.Println("Attempting to install '" + c.Caddy + "' version: " + targetVersion) + return FindVersionAndInstallGitHubRelease( + c.CaddyOrg, c.Caddy, c.Caddy, targetOS, targetArch, binDir, targetVersion, verbose) } diff --git a/common/getziti/install_ziti_edge_tunnel.go b/common/getziti/install_ziti_edge_tunnel.go index bf5770597..c1d5496df 100644 --- a/common/getziti/install_ziti_edge_tunnel.go +++ b/common/getziti/install_ziti_edge_tunnel.go @@ -13,7 +13,7 @@ func InstallZitiEdgeTunnel(targetVersion, targetOS, targetArch, binDir string, v if targetVersion != "" { newVersion = semver.MustParse(strings.TrimPrefix(targetVersion, "v")) } else { - v, err := GetLatestGitHubReleaseVersion(c.ZITI_EDGE_TUNNEL_GITHUB, verbose) + v, err := GetLatestGitHubReleaseVersion(c.OpenZitiOrg, c.ZITI_EDGE_TUNNEL_GITHUB, verbose) if err != nil { return err } @@ -22,5 +22,5 @@ func InstallZitiEdgeTunnel(targetVersion, targetOS, targetArch, binDir string, 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) + c.OpenZitiOrg, c.ZITI_EDGE_TUNNEL, c.ZITI_EDGE_TUNNEL_GITHUB, targetOS, targetArch, binDir, newVersion.String(), verbose) } diff --git a/ziti/constants/constants.go b/ziti/constants/constants.go index ca8ee2aae..da523c1d6 100644 --- a/ziti/constants/constants.go +++ b/ziti/constants/constants.go @@ -19,20 +19,16 @@ package constants import "time" const ( + OpenZitiOrg = "openziti" ZITI = "ziti" ZROK = "zrok" + CaddyOrg = "caddyserver" + Caddy = "caddy" ZITI_CONTROLLER = "ziti-controller" ZITI_ROUTER = "ziti-router" ZITI_TUNNEL = "ziti-tunnel" ZITI_EDGE_TUNNEL = "ziti-edge-tunnel" ZITI_EDGE_TUNNEL_GITHUB = "ziti-tunnel-sdk-c" - ZITI_PROX_C = "ziti-prox-c" - ZITI_SDK_C_GITHUB = "ziti-sdk-c" - - TERRAFORM_PROVIDER_PREFIX = "terraform-provider-" - TERRAFORM_PROVIDER_EDGE_CONTROLLER = "edgecontroller" - - CONFIGFILENAME = "config" ) // Config Template Constants @@ -59,11 +55,11 @@ const ( // Env Var Constants const ( - ZitiHomeVarName = "ZITI_HOME" - ZitiHomeVarDescription = "base dirname used to construct paths" + ZitiHomeVarName = "ZITI_HOME" + ZitiHomeVarDescription = "base dirname used to construct paths" - ZitiNetworkNameVarName = "ZITI_NETWORK_NAME" - ZitiNetworkNameVarDescription = "base filename used to construct paths" + ZitiNetworkNameVarName = "ZITI_NETWORK_NAME" + ZitiNetworkNameVarDescription = "base filename used to construct paths" PkiCtrlCertVarName = "ZITI_PKI_CTRL_CERT" PkiCtrlCertVarDescription = "Path to the controller's default identity client cert" diff --git a/ziti/util/updates.go b/ziti/util/updates.go index 2c94c4694..bccf5d553 100644 --- a/ziti/util/updates.go +++ b/ziti/util/updates.go @@ -35,7 +35,7 @@ func LogReleaseVersionCheck(zitiComponent string) { 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 := getziti.GetHighestVersionGitHubReleaseInfo(constants.ZITI, false) + latestGithubRelease, err := getziti.GetHighestVersionGitHubReleaseInfo(constants.OpenZitiOrg, 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 diff --git a/zititest/models/smoke/actions/bootstrap.go b/zititest/models/smoke/actions/bootstrap.go index 20a9efebd..ef07380d8 100644 --- a/zititest/models/smoke/actions/bootstrap.go +++ b/zititest/models/smoke/actions/bootstrap.go @@ -80,8 +80,8 @@ func (a *bootstrapAction) bind(m *model.Model) model.Action { workflow.AddAction(zitilib_actions.Edge("create", "config", "files-host", "host.v1", ` { - "address" : "ziti-smoketest-files.s3-us-west-1.amazonaws.com", - "port" : 443, + "address" : "localhost", + "port" : 8090, "protocol" : "tcp" }`)) @@ -119,8 +119,8 @@ func (a *bootstrapAction) bind(m *model.Model) model.Action { filesConfigName := fmt.Sprintf("files-intercept-%s%s", hostType, suffix) filesConfigDef := fmt.Sprintf(` { - "addresses": ["files-%s%s.s3-us-west-1.amazonaws.ziti"], - "portRanges" : [ { "low": 443, "high": 443 } ], + "addresses": ["files-%s%s.ziti"], + "portRanges" : [ { "low": 80, "high": 80 } ], "protocols": ["tcp"] }`, hostType, suffix) diff --git a/zititest/models/smoke/actions/start.go b/zititest/models/smoke/actions/start.go index d42127ecf..dce599127 100644 --- a/zititest/models/smoke/actions/start.go +++ b/zititest/models/smoke/actions/start.go @@ -35,6 +35,7 @@ func NewStartAction() model.ActionBinder { func (a *startAction) bind(m *model.Model) model.Action { workflow := actions.Workflow() + workflow.AddAction(component.StartInParallel(".caddy", 5)) workflow.AddAction(component.Start(".ctrl")) workflow.AddAction(edge.ControllerAvailable("#ctrl1", 30*time.Second)) workflow.AddAction(component.StartInParallel(models.EdgeRouterTag, 25)) diff --git a/zititest/models/smoke/configs/Caddyfile.tmpl b/zititest/models/smoke/configs/Caddyfile.tmpl new file mode 100644 index 000000000..2050f518c --- /dev/null +++ b/zititest/models/smoke/configs/Caddyfile.tmpl @@ -0,0 +1,15 @@ +{ + http_port 8090 + log default { + output file /home/{{ .Model.MustVariable "credentials.ssh.username" }}/logs/{{ .Component.Id }}.log + format json + level debug + } +} + + +http://localhost http://files-ert.ziti http://files-ert-unencrypted.ziti http://files-ziti-tunnel.ziti http://files-ziti-tunnel-unencrypted.ziti http://files-zet.ziti http://files-zet-unencrypted.ziti { + file_server { + root /home/{{ .Model.MustVariable "credentials.ssh.username" }}/www + } +} diff --git a/zititest/models/smoke/smoketest.go b/zititest/models/smoke/smoketest.go index 3d0531ced..bf4259a00 100644 --- a/zititest/models/smoke/smoketest.go +++ b/zititest/models/smoke/smoketest.go @@ -156,7 +156,7 @@ var Model = &model.Model{ "router-east-1": { Scope: model.Scope{Tags: model.Tags{"edge-router", "terminator", "tunneler", "client"}}, Type: &zitilab.RouterType{ - Debug: true, + Debug: false, }, }, "zcat": { @@ -170,7 +170,7 @@ var Model = &model.Model{ "router-east-2": { Scope: model.Scope{Tags: model.Tags{"edge-router", "initiator"}}, Type: &zitilab.RouterType{ - Debug: true, + Debug: false, }, }, }, @@ -216,7 +216,7 @@ var Model = &model.Model{ "router-west": { Scope: model.Scope{Tags: model.Tags{"edge-router", "tunneler", "host", "ert-host"}}, Type: &zitilab.RouterType{ - Debug: true, + Debug: false, }, }, "echo-server": { @@ -229,6 +229,12 @@ var Model = &model.Model{ Scope: model.Scope{Tags: model.Tags{"iperf", "service"}}, Type: &zitilab.IPerfServerType{}, }, + "caddy-ert": { + Scope: model.Scope{Tags: model.Tags{"caddy", "service"}}, + Type: &zitilab.CaddyType{ + Version: "v2.7.6", + }, + }, }, }, "ziti-edge-tunnel-host": { @@ -244,6 +250,12 @@ var Model = &model.Model{ Scope: model.Scope{Tags: model.Tags{"iperf", "service"}}, Type: &zitilab.IPerfServerType{}, }, + "caddy-zet": { + Scope: model.Scope{Tags: model.Tags{"caddy", "service"}}, + Type: &zitilab.CaddyType{ + Version: "v2.7.6", + }, + }, }, }, "ziti-tunnel-host": { @@ -258,6 +270,12 @@ var Model = &model.Model{ Scope: model.Scope{Tags: model.Tags{"iperf", "service"}}, Type: &zitilab.IPerfServerType{}, }, + "caddy-zt": { + Scope: model.Scope{Tags: model.Tags{"caddy", "service"}}, + Type: &zitilab.CaddyType{ + Version: "v2.7.6", + }, + }, }, }, }, diff --git a/zititest/models/smoke/tests.go b/zititest/models/smoke/tests.go index 4ea077d1b..891df7111 100644 --- a/zititest/models/smoke/tests.go +++ b/zititest/models/smoke/tests.go @@ -37,7 +37,7 @@ func TestFileDownload(hostSelector string, client HttpClient, hostType string, e urlExtra = "-unencrypted" } - url := fmt.Sprintf("https://files-%s%s.s3-us-west-1.amazonaws.ziti/%s.zip", hostType, urlExtra, fileSize) + url := fmt.Sprintf("http://files-%s%s.ziti/%s.zip", hostType, urlExtra, fileSize) filename := uuid.NewString() @@ -46,9 +46,9 @@ func TestFileDownload(hostSelector string, client HttpClient, hostType string, e 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" --fail-early --fail-with-body -SL -o %s %s 2>&1`, filename, url) + cmd = fmt.Sprintf(`set -o pipefail; curl -k --fail-early --fail-with-body -SL -o %s %s 2>&1`, filename, 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 %s -t 5 -T 5 %s 2>&1`, filename, url) + cmd = fmt.Sprintf(`set -o pipefail; wget --no-check-certificate -O %s -t 5 -T 5 %s 2>&1`, filename, url) } cmds = append(cmds, cmd) cmds = append(cmds, "md5sum -c checksums") diff --git a/zititest/models/test_resources/terraform/vpc/main.tf b/zititest/models/test_resources/terraform/vpc/main.tf index 62c4c466a..5efa6e727 100644 --- a/zititest/models/test_resources/terraform/vpc/main.tf +++ b/zititest/models/test_resources/terraform/vpc/main.tf @@ -63,6 +63,18 @@ resource "aws_security_group" "fablab" { name = var.environment_tag vpc_id = aws_vpc.fablab.id + ingress { + from_port = 443 + to_port = 443 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + from_port = 443 + to_port = 443 + protocol = "udp" + cidr_blocks = ["0.0.0.0/0"] + } ingress { from_port = 10000 to_port = 10000 diff --git a/zititest/zitilab/component_caddy.go b/zititest/zitilab/component_caddy.go new file mode 100644 index 000000000..0673460d6 --- /dev/null +++ b/zititest/zitilab/component_caddy.go @@ -0,0 +1,138 @@ +/* + Copyright 2019 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 zitilab + +import ( + "fmt" + "github.com/openziti/fablab/kernel/lib" + "github.com/openziti/fablab/kernel/model" + "github.com/openziti/ziti/ziti/constants" + "github.com/openziti/ziti/zititest/zitilab/stageziti" + "github.com/sirupsen/logrus" + "io/fs" + "strings" +) + +var _ model.ComponentType = (*CaddyType)(nil) +var _ model.ServerComponent = (*CaddyType)(nil) +var _ model.FileStagingComponent = (*CaddyType)(nil) +var _ model.HostInitializingComponent = (*CaddyType)(nil) + +type CaddyType struct { + ConfigSourceFS fs.FS + ConfigSource string + ConfigName string + Version string + LocalPath string + PreCreateClients string +} + +func (self *CaddyType) InitializeHost(r model.Run, c *model.Component) error { + return c.GetHost().ExecLogOnlyOnError("cd www && tar xfjv files.tar.bz2") +} + +func (self *CaddyType) Label() string { + return "caddy" +} + +func (self *CaddyType) GetVersion() string { + return self.Version +} + +func (self *CaddyType) InitType(*model.Component) { + canonicalizeGoAppVersion(&self.Version) +} + +func (self *CaddyType) Dump() any { + return map[string]string{ + "type_id": "caddy", + "config_source": self.ConfigSource, + "config_name": self.ConfigName, + "version": self.Version, + "local_path": self.LocalPath, + } +} + +func (self *CaddyType) StageFiles(r model.Run, c *model.Component) error { + configSource := self.ConfigSource + if configSource == "" { + configSource = "Caddyfile.tmpl" + } + + configName := self.getConfigName(c) + + if err := lib.GenerateConfigForComponent(c, self.ConfigSourceFS, configSource, configName, r); err != nil { + return err + } + + return stageziti.StageCaddy(r, c, self.Version, self.LocalPath) +} + +func (self *CaddyType) getConfigName(c *model.Component) string { + configName := self.ConfigName + if configName == "" { + configName = c.Id + } + return configName +} + +func (self *CaddyType) getProcessFilter() func(string) bool { + return func(s string) bool { + return strings.Contains(s, "caddy") + } +} + +func (self *CaddyType) IsRunning(_ model.Run, c *model.Component) (bool, error) { + pids, err := c.GetHost().FindProcesses(self.getProcessFilter()) + if err != nil { + return false, err + } + return len(pids) > 0, nil +} + +func (self *CaddyType) Start(_ model.Run, c *model.Component) error { + binaryPath := getBinaryPath(c, constants.Caddy, self.Version) + configPath := self.getConfigPath(c) + + user := c.GetHost().GetSshUser() + + logsPath := fmt.Sprintf("/home/%s/logs/%s-ctrl.log", user, c.Id) + serviceCmd := fmt.Sprintf("%s start --adapter caddyfile --config %s >> %s 2>&1 &", binaryPath, configPath, logsPath) + + if quiet, _ := c.GetBoolVariable("quiet_startup"); !quiet { + logrus.Info(serviceCmd) + } + + value, err := c.GetHost().ExecLogged(serviceCmd) + if err != nil { + return err + } + + if len(value) > 0 { + logrus.Infof("output [%s]", strings.Trim(value, " \t\r\n")) + } + + return nil +} + +func (self *CaddyType) Stop(_ model.Run, c *model.Component) error { + return c.GetHost().KillProcesses("-TERM", self.getProcessFilter()) +} + +func (self *CaddyType) getConfigPath(c *model.Component) string { + return fmt.Sprintf("/home/%s/fablab/cfg/%s", c.GetHost().GetSshUser(), self.getConfigName(c)) +} diff --git a/zititest/zitilab/stageziti/stageziti.go b/zititest/zitilab/stageziti/stageziti.go index a0486239f..bd370b9cd 100644 --- a/zititest/zitilab/stageziti/stageziti.go +++ b/zititest/zitilab/stageziti/stageziti.go @@ -39,6 +39,19 @@ func StageZrokOnce(run model.Run, component *model.Component, version string, so }) } +func StageCaddyOnce(run model.Run, component *model.Component, version string, source string) error { + op := "install.caddy-" + if version == "" { + op += "local" + } else { + op += version + } + + return run.DoOnce(op, func() error { + return StageCaddy(run, component, version, source) + }) +} + func StageZitiEdgeTunnelOnce(run model.Run, component *model.Component, version string, source string) error { op := "install.ziti-edge-tunnel-" if version == "" { @@ -64,6 +77,12 @@ func StageZrok(run model.Run, component *model.Component, version string, source }) } +func StageCaddy(run model.Run, component *model.Component, version string, source string) error { + return StageExecutable(run, "caddy", component, version, source, func() error { + return getziti.InstallCaddy(version, "linux", "amd64", run.GetBinDir(), false) + }) +} + func StageLocalOnce(run model.Run, executable string, component *model.Component, source string) error { op := fmt.Sprintf("install.%s-local", executable) return run.DoOnce(op, func() error { From a3339464f7dee24ab2cf82afcca2793a50d61265 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Mon, 13 May 2024 13:44:32 -0400 Subject: [PATCH 56/72] ensure login clears cached login info --- ziti/util/identities.go | 12 ++++++++++++ zititest/models/smoke/smoketest.go | 5 +++++ zititest/models/smoke/tests.go | 6 +++--- zititest/zitilab/actions/edge/login.go | 3 +++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/ziti/util/identities.go b/ziti/util/identities.go index f36f38c4b..610114097 100644 --- a/ziti/util/identities.go +++ b/ziti/util/identities.go @@ -12,6 +12,7 @@ import ( "os" "path/filepath" "strings" + "sync" "time" httptransport "github.com/go-openapi/runtime/client" @@ -237,8 +238,19 @@ func PersistRestClientConfig(config *RestClientConfig) error { } var selectedIdentity RestClientIdentity +var selectIdentityLock sync.Mutex + +func ReloadConfig() { + selectIdentityLock.Lock() + defer selectIdentityLock.Unlock() + + selectedIdentity = nil +} func LoadSelectedIdentity() (RestClientIdentity, error) { + selectIdentityLock.Lock() + defer selectIdentityLock.Unlock() + if selectedIdentity == nil { config, configFile, err := LoadRestClientConfig() if err != nil { diff --git a/zititest/models/smoke/smoketest.go b/zititest/models/smoke/smoketest.go index bf4259a00..fa87e8bba 100644 --- a/zititest/models/smoke/smoketest.go +++ b/zititest/models/smoke/smoketest.go @@ -299,6 +299,11 @@ var Model = &model.Model{ pfxlog.Logger().WithField("test output", out).Info("test completed") return err })), + "testScenario3": model.Bind(model.ActionFunc(func(run model.Run) error { + out, err := TestFileDownload("ert", ClientCurl, "ziti-tunnel", false, FileSizes[2]) + pfxlog.Logger().WithField("test output", out).Info("test completed") + return err + })), }, Infrastructure: model.Stages{ diff --git a/zititest/models/smoke/tests.go b/zititest/models/smoke/tests.go index 891df7111..b02670e4d 100644 --- a/zititest/models/smoke/tests.go +++ b/zititest/models/smoke/tests.go @@ -39,16 +39,16 @@ func TestFileDownload(hostSelector string, client HttpClient, hostType string, e url := fmt.Sprintf("http://files-%s%s.ziti/%s.zip", hostType, urlExtra, fileSize) - filename := uuid.NewString() + filename := uuid.NewString() + ".tmp" var cmds []string cmds = append(cmds, fmt.Sprintf("echo '%s %s' > checksums", hashes[fileSize], filename)) var cmd string if client == ClientCurl { - cmd = fmt.Sprintf(`set -o pipefail; curl -k --fail-early --fail-with-body -SL -o %s %s 2>&1`, filename, url) + cmd = fmt.Sprintf(`set -o pipefail; rm -f *.tmp; curl -k --fail-early --fail-with-body -SL -o %s %s 2>&1`, filename, url) } else if client == ClientWget { - cmd = fmt.Sprintf(`set -o pipefail; wget --no-check-certificate -O %s -t 5 -T 5 %s 2>&1`, filename, url) + cmd = fmt.Sprintf(`set -o pipefail; rm -f *.tmp; wget --no-check-certificate -O %s -t 5 -T 5 %s 2>&1`, filename, url) } cmds = append(cmds, cmd) cmds = append(cmds, "md5sum -c checksums") diff --git a/zititest/zitilab/actions/edge/login.go b/zititest/zitilab/actions/edge/login.go index f5be5d81a..0b3d45c49 100644 --- a/zititest/zitilab/actions/edge/login.go +++ b/zititest/zitilab/actions/edge/login.go @@ -4,6 +4,7 @@ import ( "errors" "github.com/openziti/fablab/kernel/model" "github.com/openziti/ziti/ziti/cmd/common" + "github.com/openziti/ziti/ziti/util" "github.com/openziti/ziti/zititest/zitilab/cli" "path/filepath" ) @@ -44,6 +45,8 @@ func (l *login) Execute(run model.Run) error { } common.CliIdentity = model.ActiveInstanceId() + util.ReloadConfig() + return nil } From 21bf7ff6bd6ed0dc92d346b0eea99588bb6ec247 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Tue, 21 May 2024 13:17:59 -0400 Subject: [PATCH 57/72] Extend iperf timeouts --- zititest/models/smoke/tests.go | 23 +++++++++++++++++++++++ zititest/tests/iperf_test.go | 25 +++---------------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/zititest/models/smoke/tests.go b/zititest/models/smoke/tests.go index b02670e4d..60ea72ce9 100644 --- a/zititest/models/smoke/tests.go +++ b/zititest/models/smoke/tests.go @@ -56,3 +56,26 @@ func TestFileDownload(hostSelector string, client HttpClient, hostType string, e timeout := timeouts[fileSize] return host.ExecLoggedWithTimeout(timeout, cmds...) } + +func TestIperf(hostSelector, hostType string, encrypted, reversed bool) (string, error) { + host, err := model.GetModel().SelectHost("." + hostSelector + "-client") + if err != nil { + return "", err + } + + urlExtra := "" + if !encrypted { + urlExtra = "-unencrypted" + } + + addr := fmt.Sprintf("iperf-%s%s.ziti", hostType, urlExtra) + + extraOptions := "" + if reversed { + extraOptions += " -R" + } + + cmd := fmt.Sprintf(`set -o pipefail; iperf3 -c %s -P 1 -t 10 %s`, addr, extraOptions) + + return host.ExecLoggedWithTimeout(40*time.Second, cmd) +} diff --git a/zititest/tests/iperf_test.go b/zititest/tests/iperf_test.go index 45494a3a6..31a438f60 100644 --- a/zititest/tests/iperf_test.go +++ b/zititest/tests/iperf_test.go @@ -18,10 +18,9 @@ package tests import ( "fmt" - "github.com/openziti/fablab/kernel/model" + "github.com/openziti/ziti/zititest/models/smoke" "github.com/stretchr/testify/require" "testing" - "time" ) func TestIPerf(t *testing.T) { @@ -78,25 +77,7 @@ func testIPerf(t *testing.T, hostSelector string, hostType string, encrypted boo success := false t.Run(fmt.Sprintf("(%s%s%s)-%v", hostSelector, direction, hostType, encDesk), func(t *testing.T) { - host, err := model.GetModel().SelectHost("." + hostSelector + "-client") - req := require.New(t) - req.NoError(err) - - urlExtra := "" - if !encrypted { - urlExtra = "-unencrypted" - } - - addr := fmt.Sprintf("iperf-%s%s.ziti", hostType, urlExtra) - - extraOptions := "" - if reversed { - extraOptions += " -R" - } - - cmd := fmt.Sprintf(`set -o pipefail; iperf3 -c %s -P 1 -t 10 %s`, addr, extraOptions) - - o, err := host.ExecLoggedWithTimeout(20*time.Second, cmd) + o, err := smoke.TestIperf(hostSelector, hostType, encrypted, reversed) if hostType == "zet" && err != nil { t.Skipf("zet hosted iperf test failed [%v]", err.Error()) return @@ -118,7 +99,7 @@ func testIPerf(t *testing.T, hostSelector string, hostType string, encrypted boo } t.Log(o) - req.NoError(err) + require.NoError(t, err) success = true }) return success From 91fd7097f0ea1f65e204d65048823f40160b0a2d Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Mon, 6 May 2024 18:41:32 -0400 Subject: [PATCH 58/72] Add support for sticky termininator selection on dials. Fixes #2019 --- CHANGELOG.md | 53 ++++++++++ common/ctrl_msg/messages.go | 2 + controller/controller.go | 2 + controller/db/terminator_store_test.go | 8 +- controller/network/network.go | 29 ++--- controller/network/network_test.go | 45 +++++++- controller/network/smart_test.go | 3 +- controller/xt/costs.go | 8 +- controller/xt/xt.go | 13 ++- controller/xt_random/impl.go | 6 +- controller/xt_smartrouting/impl.go | 6 +- controller/xt_sticky/impl.go | 99 +++++++++++++++++ controller/xt_weighted/impl.go | 8 +- router/xgress_edge/listener.go | 32 ++++-- tests/accept_manual_start_test.go | 4 +- tests/sticky_terminator_test.go | 141 +++++++++++++++++++++++++ zititest/go.mod | 24 ++--- zititest/go.sum | 48 ++++----- 18 files changed, 444 insertions(+), 87 deletions(-) create mode 100644 controller/xt_sticky/impl.go create mode 100644 tests/sticky_terminator_test.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 236aef4ae..c70e83fec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,56 @@ +# Release 1.1.3 + +## What's New + +* Sticky Terminator Selection + +## Stick Terminator Strategy + +This release introduces a new terminator selection strategy `sticky`. On every dial it will return a token to the +dialer, which represents the terminator used in the dial. This token maybe passed in on subsequent dials. If no token +is passed in, the strategy will work the same as the `smartrouting` strategy. If a token is passed in, and the +terminator is still valid, the same terminator will be used for the dial. A terminator will be consideder valid if +it still exists and there are no terminators with a higher precedence. + +This is currently only supported in the Go SDK. + +### Go SDK Example + +``` +ziti edge create service test --terminator-strategy sticky +``` + +``` + conn := clientContext.Dial("test") + token := conn.Conn.GetStickinessToken() + _ = conn.Close() + + dialOptions := &ziti.DialOptions{ + ConnectTimeout: time.Second, + StickinessToken: token, + } + conn = clientContext.DialWithOptions("test", dialOptions)) + nextToken := conn.Conn.GetStickinessToken() + _ = conn.Close() +``` + +## Component Updates and Bug Fixes + +* github.com/openziti/channel/v2: [v2.0.128 -> v2.0.130](https://github.com/openziti/channel/compare/v2.0.128...v2.0.130) +* github.com/openziti/edge-api: [v0.26.18 -> v0.26.19](https://github.com/openziti/edge-api/compare/v0.26.18...v0.26.19) +* github.com/openziti/foundation/v2: [v2.0.42 -> v2.0.45](https://github.com/openziti/foundation/compare/v2.0.42...v2.0.45) +* github.com/openziti/identity: [v1.0.75 -> v1.0.77](https://github.com/openziti/identity/compare/v1.0.75...v1.0.77) +* github.com/openziti/metrics: [v1.2.51 -> v1.2.54](https://github.com/openziti/metrics/compare/v1.2.51...v1.2.54) +* github.com/openziti/runzmd: [v1.0.43 -> v1.0.47](https://github.com/openziti/runzmd/compare/v1.0.43...v1.0.47) +* github.com/openziti/sdk-golang: [v0.23.35 -> v0.23.37](https://github.com/openziti/sdk-golang/compare/v0.23.35...v0.23.37) + * [Issue #562](https://github.com/openziti/sdk-golang/issues/562) - Support sticky dials + +* github.com/openziti/secretstream: [v0.1.19 -> v0.1.20](https://github.com/openziti/secretstream/compare/v0.1.19...v0.1.20) +* github.com/openziti/storage: [v0.2.37 -> v0.2.41](https://github.com/openziti/storage/compare/v0.2.37...v0.2.41) +* github.com/openziti/transport/v2: [v2.0.131 -> v2.0.133](https://github.com/openziti/transport/compare/v2.0.131...v2.0.133) +* github.com/openziti/ziti: [v1.1.2 -> v1.1.3](https://github.com/openziti/ziti/compare/v1.1.2...v1.1.3) + * [Issue #2019](https://github.com/openziti/ziti/issues/2019) - Support mechanism for sticky dials + # Release 1.1.2 ## What's New diff --git a/common/ctrl_msg/messages.go b/common/ctrl_msg/messages.go index f59754973..a5534bd70 100644 --- a/common/ctrl_msg/messages.go +++ b/common/ctrl_msg/messages.go @@ -40,6 +40,8 @@ const ( InitiatorLocalAddressHeader = 1112 InitiatorRemoteAddressHeader = 1113 + XtStickinessToken = 1114 + ErrorTypeGeneric = 0 ErrorTypeInvalidTerminator = 1 ErrorTypeMisconfiguredTerminator = 2 diff --git a/controller/controller.go b/controller/controller.go index c277b7f20..a48724798 100644 --- a/controller/controller.go +++ b/controller/controller.go @@ -29,6 +29,7 @@ import ( "github.com/openziti/ziti/controller/event" "github.com/openziti/ziti/controller/events" "github.com/openziti/ziti/controller/handler_peer_ctrl" + "github.com/openziti/ziti/controller/xt_sticky" "github.com/openziti/ziti/controller/zac" "math/big" "os" @@ -446,6 +447,7 @@ func (c *Controller) registerXts() { xt.GlobalRegistry().RegisterFactory(xt_smartrouting.NewFactory()) xt.GlobalRegistry().RegisterFactory(xt_random.NewFactory()) xt.GlobalRegistry().RegisterFactory(xt_weighted.NewFactory()) + xt.GlobalRegistry().RegisterFactory(xt_sticky.NewFactory()) } func (c *Controller) registerComponents() error { diff --git a/controller/db/terminator_store_test.go b/controller/db/terminator_store_test.go index 6ad1e4a7c..2600ce0cb 100644 --- a/controller/db/terminator_store_test.go +++ b/controller/db/terminator_store_test.go @@ -19,10 +19,10 @@ package db import ( "fmt" "github.com/google/uuid" - "github.com/openziti/ziti/controller/fields" - "github.com/openziti/ziti/controller/xt" "github.com/openziti/foundation/v2/stringz" "github.com/openziti/storage/boltztest" + "github.com/openziti/ziti/controller/fields" + "github.com/openziti/ziti/controller/xt" "go.etcd.io/bbolt" "math" "testing" @@ -339,8 +339,8 @@ func (t testStrategyFactory) NewStrategy() xt.Strategy { type testStrategy struct{} -func (t testStrategy) Select(terminators []xt.CostedTerminator) (xt.CostedTerminator, error) { - return terminators[0], nil +func (t testStrategy) Select(param xt.CreateCircuitParams, terminators []xt.CostedTerminator) (xt.CostedTerminator, xt.PeerData, error) { + return terminators[0], nil, nil } func (t testStrategy) HandleTerminatorChange(xt.StrategyChangeEvent) error { diff --git a/controller/network/network.go b/controller/network/network.go index 48ae175ff..60e2469d1 100644 --- a/controller/network/network.go +++ b/controller/network/network.go @@ -521,7 +521,6 @@ func (network *Network) RerouteLink(l *Link) { } func (network *Network) CreateCircuit(params CreateCircuitParams) (*Circuit, error) { - srcR := params.GetSourceRouter() clientId := params.GetClientId() service := params.GetServiceId() ctx := params.GetLogContext() @@ -559,7 +558,7 @@ func (network *Network) CreateCircuit(params CreateCircuitParams) (*Circuit, err logger = logger.WithField("serviceName", svc.Name) // 3: select terminator - strategy, terminator, pathNodes, circuitErr := network.selectPath(srcR, svc, instanceId, ctx) + strategy, terminator, pathNodes, strategyData, circuitErr := network.selectPath(params, svc, instanceId, ctx) if circuitErr != nil { network.CircuitFailedEvent(circuitId, params, startTime, nil, nil, circuitErr.Cause()) network.ServiceDialOtherError(serviceId) @@ -653,6 +652,10 @@ func (network *Network) CreateCircuit(params CreateCircuitParams) (*Circuit, err delete(peerData, uint32(ctrl_msg.TerminatorLocalAddressHeader)) delete(peerData, uint32(ctrl_msg.TerminatorRemoteAddressHeader)) + for k, v := range strategyData { + peerData[k] = v + } + now := time.Now() // 6: Create Circuit Object circuit := &Circuit{ @@ -697,7 +700,7 @@ func parseInstanceIdAndService(service string) (string, string) { return identityId, serviceId } -func (network *Network) selectPath(srcR *Router, svc *Service, instanceId string, ctx logcontext.Context) (xt.Strategy, xt.CostedTerminator, []*Router, CircuitError) { +func (network *Network) selectPath(params CreateCircuitParams, svc *Service, instanceId string, ctx logcontext.Context) (xt.Strategy, xt.CostedTerminator, []*Router, xt.PeerData, CircuitError) { paths := map[string]*PathAndCost{} var weightedTerminators []xt.CostedTerminator var errList []error @@ -725,7 +728,7 @@ func (network *Network) selectPath(srcR *Router, svc *Service, instanceId string continue } - path, cost, err := network.shortestPath(srcR, dstR) + path, cost, err := network.shortestPath(params.GetSourceRouter(), dstR) if err != nil { log.Debugf("error while calculating path for service %v: %v", svc.Id, err) errList = append(errList, err) @@ -748,38 +751,38 @@ func (network *Network) selectPath(srcR *Router, svc *Service, instanceId string } if len(svc.Terminators) == 0 { - return nil, nil, nil, newCircuitErrorf(CircuitFailureNoTerminators, "service %v has no terminators", svc.Id) + return nil, nil, nil, nil, newCircuitErrorf(CircuitFailureNoTerminators, "service %v has no terminators", svc.Id) } if len(weightedTerminators) == 0 { if pathError { - return nil, nil, nil, newCircuitErrWrap(CircuitFailureNoPath, errorz.MultipleErrors(errList)) + return nil, nil, nil, nil, newCircuitErrWrap(CircuitFailureNoPath, errorz.MultipleErrors(errList)) } if hasOfflineRouters { - return nil, nil, nil, newCircuitErrorf(CircuitFailureNoOnlineTerminators, "service %v has no online terminators for instanceId %v", svc.Id, instanceId) + return nil, nil, nil, nil, newCircuitErrorf(CircuitFailureNoOnlineTerminators, "service %v has no online terminators for instanceId %v", svc.Id, instanceId) } - return nil, nil, nil, newCircuitErrorf(CircuitFailureNoTerminators, "service %v has no terminators for instanceId %v", svc.Id, instanceId) + return nil, nil, nil, nil, newCircuitErrorf(CircuitFailureNoTerminators, "service %v has no terminators for instanceId %v", svc.Id, instanceId) } strategy, err := network.strategyRegistry.GetStrategy(svc.TerminatorStrategy) if err != nil { - return nil, nil, nil, newCircuitErrWrap(CircuitFailureInvalidStrategy, err) + return nil, nil, nil, nil, newCircuitErrWrap(CircuitFailureInvalidStrategy, err) } sort.Slice(weightedTerminators, func(i, j int) bool { return weightedTerminators[i].GetRouteCost() < weightedTerminators[j].GetRouteCost() }) - terminator, err := strategy.Select(weightedTerminators) + terminator, peerData, err := strategy.Select(params, weightedTerminators) if err != nil { - return nil, nil, nil, newCircuitErrorf(CircuitFailureStrategyError, "strategy %v errored selecting terminator for service %v: %v", svc.TerminatorStrategy, svc.Id, err) + return nil, nil, nil, nil, newCircuitErrorf(CircuitFailureStrategyError, "strategy %v errored selecting terminator for service %v: %v", svc.TerminatorStrategy, svc.Id, err) } if terminator == nil { - return nil, nil, nil, newCircuitErrorf(CircuitFailureStrategyError, "strategy %v did not select terminator for service %v", svc.TerminatorStrategy, svc.Id) + return nil, nil, nil, nil, newCircuitErrorf(CircuitFailureStrategyError, "strategy %v did not select terminator for service %v", svc.TerminatorStrategy, svc.Id) } path := paths[terminator.GetRouterId()].path @@ -803,7 +806,7 @@ func (network *Network) selectPath(srcR *Router, svc *Service, instanceId string log.Debugf("selected terminator %v for path %v from %v", terminator.GetId(), pathStr, buf.String()) } - return strategy, terminator, path, nil + return strategy, terminator, path, peerData, nil } func (network *Network) RemoveCircuit(circuitId string, now bool) error { diff --git a/controller/network/network_test.go b/controller/network/network_test.go index 3396f060e..d17c714f0 100644 --- a/controller/network/network_test.go +++ b/controller/network/network_test.go @@ -140,7 +140,8 @@ func TestCreateCircuit(t *testing.T) { }, */ lc := logcontext.NewContext() - _, _, _, cerr := network.selectPath(r0, svc, "", lc) + params := newCircuitParams(svc, r0) + _, _, _, _, cerr := network.selectPath(params, svc, "", lc) assert.Error(t, cerr) assert.Equal(t, CircuitFailureNoTerminators, cerr.Cause()) @@ -156,15 +157,15 @@ func TestCreateCircuit(t *testing.T) { }, } - _, _, _, cerr = network.selectPath(r0, svc, "", lc) + _, _, _, _, cerr = network.selectPath(params, svc, "", lc) assert.Error(t, cerr) assert.Equal(t, CircuitFailureNoOnlineTerminators, cerr.Cause()) network.Routers.markConnected(r0) - _, _, _, cerr = network.selectPath(r0, svc, "", lc) + _, _, _, _, cerr = network.selectPath(params, svc, "", lc) assert.NoError(t, cerr) - _, _, _, cerr = network.selectPath(r0, svc, "test", lc) + _, _, _, _, cerr = network.selectPath(params, svc, "test", lc) assert.Error(t, cerr) assert.Equal(t, CircuitFailureNoTerminators, cerr.Cause()) } @@ -205,3 +206,39 @@ func (v VersionProviderTest) AsVersionInfo() *versions.VersionInfo { func NewVersionProviderTest() versions.VersionProvider { return &VersionProviderTest{} } + +func newCircuitParams(service *Service, router *Router) CreateCircuitParams { + return testCreateCircuitParams{ + svc: service, + router: router, + } +} + +type testCreateCircuitParams struct { + svc *Service + router *Router +} + +func (t testCreateCircuitParams) GetServiceId() string { + return t.svc.Id +} + +func (t testCreateCircuitParams) GetSourceRouter() *Router { + return t.router +} + +func (t testCreateCircuitParams) GetClientId() *identity.TokenId { + return nil +} + +func (t testCreateCircuitParams) GetCircuitTags(terminator xt.CostedTerminator) map[string]string { + return nil +} + +func (t testCreateCircuitParams) GetLogContext() logcontext.Context { + return logcontext.NewContext() +} + +func (t testCreateCircuitParams) GetDeadline() time.Time { + return time.Now().Add(time.Second) +} diff --git a/controller/network/smart_test.go b/controller/network/smart_test.go index e0a5f780f..3e4922a7c 100644 --- a/controller/network/smart_test.go +++ b/controller/network/smart_test.go @@ -66,7 +66,8 @@ func TestSmartRerouteMinCostDelta(t *testing.T) { }, } - _, terminator, pathNodes, cerr := network.selectPath(r0, svc, "", lc) + params := newCircuitParams(svc, r0) + _, terminator, pathNodes, _, cerr := network.selectPath(params, svc, "", lc) assert.NoError(t, cerr) path, pathErr := network.CreatePathWithNodes(pathNodes) diff --git a/controller/xt/costs.go b/controller/xt/costs.go index 11f99e692..d765628fa 100644 --- a/controller/xt/costs.go +++ b/controller/xt/costs.go @@ -63,16 +63,12 @@ func (p *precedence) IsRequired() bool { return p.minCost == requireMinCost } -func (p *precedence) getMinCost() uint32 { +func (p *precedence) GetBaseCost() uint32 { return p.minCost } -func (p *precedence) getMaxCost() uint32 { - return p.maxCost -} - func (p *precedence) GetBiasedCost(cost uint32) uint32 { - result := p.getMinCost() + cost + result := p.minCost + cost if result > p.maxCost { return p.maxCost } diff --git a/controller/xt/xt.go b/controller/xt/xt.go index 887c5a482..b720eb7e3 100644 --- a/controller/xt/xt.go +++ b/controller/xt/xt.go @@ -18,6 +18,8 @@ package xt import ( "fmt" + "github.com/openziti/identity" + "github.com/openziti/ziti/common/logcontext" "time" ) @@ -60,16 +62,21 @@ type StrategyChangeEvent interface { GetRemoved() []Terminator } +type CreateCircuitParams interface { + GetServiceId() string + GetClientId() *identity.TokenId + GetLogContext() logcontext.Context +} + type Strategy interface { - Select(terminators []CostedTerminator) (CostedTerminator, error) + Select(param CreateCircuitParams, terminators []CostedTerminator) (CostedTerminator, PeerData, error) HandleTerminatorChange(event StrategyChangeEvent) error NotifyEvent(event TerminatorEvent) } type Precedence interface { fmt.Stringer - getMinCost() uint32 - getMaxCost() uint32 + GetBaseCost() uint32 IsFailed() bool IsDefault() bool IsRequired() bool diff --git a/controller/xt_random/impl.go b/controller/xt_random/impl.go index f17385a4d..e3fede206 100644 --- a/controller/xt_random/impl.go +++ b/controller/xt_random/impl.go @@ -42,14 +42,14 @@ func (self *factory) NewStrategy() xt.Strategy { type strategy struct{} -func (self *strategy) Select(terminators []xt.CostedTerminator) (xt.CostedTerminator, error) { +func (self *strategy) Select(_ xt.CreateCircuitParams, terminators []xt.CostedTerminator) (xt.CostedTerminator, xt.PeerData, error) { terminators = xt.GetRelatedTerminators(terminators) count := len(terminators) if count == 1 { - return terminators[0], nil + return terminators[0], nil, nil } selected := rand.Intn(count) - return terminators[selected], nil + return terminators[selected], nil, nil } func (self *strategy) NotifyEvent(xt.TerminatorEvent) {} diff --git a/controller/xt_smartrouting/impl.go b/controller/xt_smartrouting/impl.go index b55cce6bb..7ad5d9ed2 100644 --- a/controller/xt_smartrouting/impl.go +++ b/controller/xt_smartrouting/impl.go @@ -28,7 +28,7 @@ const ( ) /** -The smartrouting strategy relies purely on maninpulating costs and lets the smart routing algorithm pick the terminator. +The smart routing strategy relies purely on manipulating costs and lets the smart routing algorithm pick the terminator. It increases costs by a small amount when a new circuit uses the terminator and drops it back down when the circuit closes. It also increases the cost whenever a dial fails and decreases it whenever a dial succeeds. Dial successes will only reduce costs by the amount that failures have previously increased it. @@ -59,8 +59,8 @@ type strategy struct { xt_common.CostVisitor } -func (self *strategy) Select(terminators []xt.CostedTerminator) (xt.CostedTerminator, error) { - return terminators[0], nil +func (self *strategy) Select(_ xt.CreateCircuitParams, terminators []xt.CostedTerminator) (xt.CostedTerminator, xt.PeerData, error) { + return terminators[0], nil, nil } func (self *strategy) NotifyEvent(event xt.TerminatorEvent) { diff --git a/controller/xt_sticky/impl.go b/controller/xt_sticky/impl.go new file mode 100644 index 000000000..8effac2b6 --- /dev/null +++ b/controller/xt_sticky/impl.go @@ -0,0 +1,99 @@ +/* + 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 xt_sticky + +import ( + "github.com/openziti/ziti/common/ctrl_msg" + "github.com/openziti/ziti/controller/xt" + "github.com/openziti/ziti/controller/xt_common" + "math" + "time" +) + +const ( + Name = "sticky" +) + +/** +The sticky strategy uses the smart routing strategy to select an initial terminator for a client. It also +returns a token to the client which can be passed back in on subsequent dials. If the token is passed +back in, then strategy will try to use the same terminator. If it's not available a different terminator +will be selected and a different token will be returned. +*/ + +func NewFactory() xt.Factory { + return &factory{} +} + +type factory struct{} + +func (self *factory) GetStrategyName() string { + return Name +} + +func (self *factory) NewStrategy() xt.Strategy { + strategy := strategy{ + CostVisitor: xt_common.CostVisitor{ + FailureCosts: xt.NewFailureCosts(math.MaxUint16/4, 20, 2), + CircuitCost: 2, + }, + } + strategy.CostVisitor.FailureCosts.CreditOverTime(5, time.Minute) + return &strategy +} + +type strategy struct { + xt_common.CostVisitor +} + +func (self *strategy) Select(params xt.CreateCircuitParams, terminators []xt.CostedTerminator) (xt.CostedTerminator, xt.PeerData, error) { + id := params.GetClientId() + var result xt.CostedTerminator + + terminators = xt.GetRelatedTerminators(terminators) + + if id != nil { + if terminatorId, ok := id.Data[ctrl_msg.XtStickinessToken]; ok { + strId := string(terminatorId) + for _, terminator := range terminators { + if terminator.GetId() == strId { + result = terminator + break + } + } + } + } + + if result == nil { + result = terminators[0] + } + + return result, xt.PeerData{ + ctrl_msg.XtStickinessToken: []byte(result.GetId()), + }, nil +} + +func (self *strategy) NotifyEvent(event xt.TerminatorEvent) { + event.Accept(&self.CostVisitor) +} + +func (self *strategy) HandleTerminatorChange(event xt.StrategyChangeEvent) error { + for _, t := range event.GetRemoved() { + self.FailureCosts.Clear(t.GetId()) + } + return nil +} diff --git a/controller/xt_weighted/impl.go b/controller/xt_weighted/impl.go index 35b7b87f1..cf54ecd28 100644 --- a/controller/xt_weighted/impl.go +++ b/controller/xt_weighted/impl.go @@ -55,10 +55,10 @@ type strategy struct { xt_common.CostVisitor } -func (self *strategy) Select(terminators []xt.CostedTerminator) (xt.CostedTerminator, error) { +func (self *strategy) Select(_ xt.CreateCircuitParams, terminators []xt.CostedTerminator) (xt.CostedTerminator, xt.PeerData, error) { terminators = xt.GetRelatedTerminators(terminators) if len(terminators) == 1 { - return terminators[0], nil + return terminators[0], nil, nil } var costIdx []float32 @@ -81,11 +81,11 @@ func (self *strategy) Select(terminators []xt.CostedTerminator) (xt.CostedTermin selected := rand.Float32() for idx, cost := range costIdx { if selected < cost { - return terminators[idx], nil + return terminators[idx], nil, nil } } - return terminators[0], nil + return terminators[0], nil, nil } func (self *strategy) NotifyEvent(event xt.TerminatorEvent) { diff --git a/router/xgress_edge/listener.go b/router/xgress_edge/listener.go index 49aba8093..e2e81eda6 100644 --- a/router/xgress_edge/listener.go +++ b/router/xgress_edge/listener.go @@ -42,11 +42,16 @@ import ( "github.com/openziti/ziti/router/xgress_common" ) -var peerHeaders = []uint32{ - edge.PublicKeyHeader, - edge.CallerIdHeader, - edge.AppDataHeader, - edge.ConnectionMarkerHeader, +var peerHeaderRequestMappings = map[uint32]uint32{ + edge.PublicKeyHeader: edge.PublicKeyHeader, + edge.CallerIdHeader: edge.CallerIdHeader, + edge.AppDataHeader: edge.AppDataHeader, + edge.ConnectionMarkerHeader: edge.ConnectionMarkerHeader, + edge.StickinessTokenHeader: ctrl_msg.XtStickinessToken, +} + +var peerHeaderRespMappings = map[uint32]uint32{ + ctrl_msg.XtStickinessToken: edge.StickinessTokenHeader, } type listener struct { @@ -162,9 +167,9 @@ func (self *edgeClientConn) processConnect(manager state.Manager, req *channel.M log.Debug("dialing fabric") peerData := make(map[uint32][]byte) - for _, key := range peerHeaders { - if pk, found := req.Headers[int32(key)]; found { - peerData[key] = pk + for k, v := range peerHeaderRequestMappings { + if pk, found := req.Headers[int32(k)]; found { + peerData[v] = pk } } @@ -197,6 +202,8 @@ func (self *edgeClientConn) processConnect(manager state.Manager, req *channel.M return } + self.mapResponsePeerData(response.PeerData) + x := xgress.NewXgress(response.CircuitId, ctrlCh.Id(), xgress.Address(response.Address), conn, xgress.Initiator, &self.listener.options.Options, response.Tags) self.listener.bindHandler.HandleXgressBind(x) conn.ctrlRx = x @@ -205,6 +212,15 @@ func (self *edgeClientConn) processConnect(manager state.Manager, req *channel.M x.Start() } +func (self *edgeClientConn) mapResponsePeerData(m map[uint32][]byte) { + for k, v := range peerHeaderRespMappings { + if val, ok := m[k]; ok { + delete(m, k) + m[v] = val + } + } +} + func (self *edgeClientConn) sendCreateCircuitRequest(req *ctrl_msg.CreateCircuitRequest, ctrlCh channel.Channel) (*ctrl_msg.CreateCircuitResponse, error) { if capabilities.IsCapable(ctrlCh, capabilities.ControllerCreateCircuitV2) { return self.sendCreateCircuitRequestV2(req, ctrlCh) diff --git a/tests/accept_manual_start_test.go b/tests/accept_manual_start_test.go index ef88ce57f..78f9b781e 100644 --- a/tests/accept_manual_start_test.go +++ b/tests/accept_manual_start_test.go @@ -204,8 +204,8 @@ func (self *testFailoverStrategy) VisitDialSucceeded(xt.TerminatorEvent) { atomic.StoreInt32(&self.failCount, 0) } -func (self *testFailoverStrategy) Select(terminators []xt.CostedTerminator) (xt.CostedTerminator, error) { - return terminators[0], nil +func (self *testFailoverStrategy) Select(_ xt.CreateCircuitParams, terminators []xt.CostedTerminator) (xt.CostedTerminator, xt.PeerData, error) { + return terminators[0], nil, nil } func (self *testFailoverStrategy) NotifyEvent(event xt.TerminatorEvent) { diff --git a/tests/sticky_terminator_test.go b/tests/sticky_terminator_test.go new file mode 100644 index 000000000..4a399d3ef --- /dev/null +++ b/tests/sticky_terminator_test.go @@ -0,0 +1,141 @@ +//go:build apitests + +/* + 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/google/uuid" + "github.com/openziti/sdk-golang/ziti" + "github.com/openziti/sdk-golang/ziti/edge" + "github.com/openziti/ziti/controller/xt_sticky" + "testing" + "time" +) + +func Test_StickyTerminators(t *testing.T) { + ctx := NewTestContext(t) + defer ctx.Teardown() + ctx.StartServer() + ctx.RequireAdminManagementApiLogin() + + service := ctx.AdminManagementSession.RequireNewServiceAccessibleToAll(xt_sticky.Name) + + ctx.CreateEnrollAndStartEdgeRouter() + _, hostContext := ctx.AdminManagementSession.RequireCreateSdkContext() + defer hostContext.Close() + + listener1, err := hostContext.Listen(service.Name) + ctx.Req.NoError(err) + defer listener1.Close() + + server1Id := uuid.NewString() + server1 := newTestServer(listener1, func(conn *testServerConn) error { + fmt.Println("server1 terminator called") + conn.WriteString(server1Id, time.Second) + conn.RequireClose() + return nil + }) + server1.start() + + _, clientContext := ctx.AdminManagementSession.RequireCreateSdkContext() + defer clientContext.Close() + + conn := ctx.WrapConn(clientContext.Dial(service.Name)) + token := conn.Conn.GetStickinessToken() + ctx.Req.NotNil(token) + conn.ReadExpected(server1Id, time.Second) + conn.RequireClose() + + listener2, err := hostContext.Listen(service.Name) + ctx.Req.NoError(err) + defer listener2.Close() + + server2Id := uuid.NewString() + server2 := newTestServer(listener2, func(conn *testServerConn) error { + fmt.Println("server2 terminator called") + conn.WriteString(server2Id, time.Second) + conn.RequireClose() + return nil + }) + server2.start() + + // make sure we stick with the same terminator + for range 10 { + dialOptions := &ziti.DialOptions{ + ConnectTimeout: time.Second, + StickinessToken: token, + } + conn = ctx.WrapConn(clientContext.DialWithOptions(service.Name, dialOptions)) + nextToken := conn.Conn.GetStickinessToken() + ctx.Req.Equal(string(token), string(nextToken)) + conn.ReadExpected(server1Id, time.Second) + conn.RequireClose() + token = nextToken + } + + // bump the cost and make sure we stick with the same terminator even with the higher cost + ctx.Req.NoError(listener1.UpdateCost(5000)) + time.Sleep(100 * time.Millisecond) + + for range 10 { + dialOptions := &ziti.DialOptions{ + ConnectTimeout: time.Second, + StickinessToken: token, + } + conn = ctx.WrapConn(clientContext.DialWithOptions(service.Name, dialOptions)) + nextToken := conn.Conn.GetStickinessToken() + ctx.Req.Equal(string(token), string(nextToken)) + conn.ReadExpected(server1Id, time.Second) + conn.RequireClose() + token = nextToken + } + + // Fail the terminator and make sure we fail over + ctx.Req.NoError(listener1.UpdatePrecedence(edge.PrecedenceFailed)) + time.Sleep(100 * time.Millisecond) + + dialOptions := &ziti.DialOptions{ + ConnectTimeout: time.Second, + StickinessToken: token, + } + conn = ctx.WrapConn(clientContext.DialWithOptions(service.Name, dialOptions)) + nextToken := conn.Conn.GetStickinessToken() + ctx.Req.NotEqual(string(token), string(nextToken)) + conn.ReadExpected(server2Id, time.Second) + conn.RequireClose() + token = nextToken + + // Reset the initial terminator, bump the second terminator cost and make sure we stick with it + ctx.Req.NoError(listener1.UpdateCostAndPrecedence(0, edge.PrecedenceDefault)) + ctx.Req.NoError(listener2.UpdateCost(5000)) + time.Sleep(100 * time.Millisecond) + + for range 10 { + dialOptions = &ziti.DialOptions{ + ConnectTimeout: time.Second, + StickinessToken: token, + } + conn = ctx.WrapConn(clientContext.DialWithOptions(service.Name, dialOptions)) + nextToken = conn.Conn.GetStickinessToken() + ctx.Req.Equal(string(token), string(nextToken)) + conn.ReadExpected(server2Id, time.Second) + conn.RequireClose() + token = nextToken + } +} diff --git a/zititest/go.mod b/zititest/go.mod index 7b9b910e1..8875a8da1 100644 --- a/zititest/go.mod +++ b/zititest/go.mod @@ -13,14 +13,14 @@ require ( github.com/gorilla/websocket v1.5.1 github.com/michaelquigley/pfxlog v0.6.10 github.com/openziti/agent v1.0.16 - github.com/openziti/channel/v2 v2.0.128 - github.com/openziti/edge-api v0.26.18 + github.com/openziti/channel/v2 v2.0.130 + github.com/openziti/edge-api v0.26.19 github.com/openziti/fablab v0.5.60 - github.com/openziti/foundation/v2 v2.0.42 - github.com/openziti/identity v1.0.75 - github.com/openziti/sdk-golang v0.23.35 - github.com/openziti/storage v0.2.37 - github.com/openziti/transport/v2 v2.0.131 + github.com/openziti/foundation/v2 v2.0.45 + github.com/openziti/identity v1.0.77 + github.com/openziti/sdk-golang v0.23.37 + github.com/openziti/storage v0.2.41 + github.com/openziti/transport/v2 v2.0.133 github.com/openziti/ziti v0.28.3 github.com/orcaman/concurrent-map/v2 v2.0.1 github.com/pkg/errors v0.9.1 @@ -61,7 +61,7 @@ require ( 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.16.0 // indirect + github.com/fatih/color v1.17.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect @@ -80,7 +80,7 @@ require ( github.com/go-openapi/strfmt v0.23.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect github.com/go-openapi/validate v0.24.0 // indirect - github.com/go-resty/resty/v2 v2.13.0 // indirect + github.com/go-resty/resty/v2 v2.13.1 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/gomarkdown/markdown v0.0.0-20230922112808-5421fefb8386 // indirect @@ -138,9 +138,9 @@ 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.51 // indirect - github.com/openziti/runzmd v1.0.43 // indirect - github.com/openziti/secretstream v0.1.19 // indirect + github.com/openziti/metrics v1.2.54 // indirect + github.com/openziti/runzmd v1.0.47 // indirect + github.com/openziti/secretstream v0.1.20 // indirect github.com/openziti/x509-claims v1.0.3 // indirect github.com/openziti/xweb/v2 v2.1.0 // indirect github.com/openziti/ziti-db-explorer v1.1.3 // indirect diff --git a/zititest/go.sum b/zititest/go.sum index a3c7b4f69..ce08f7aba 100644 --- a/zititest/go.sum +++ b/zititest/go.sum @@ -182,8 +182,8 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 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.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= @@ -244,8 +244,8 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= -github.com/go-resty/resty/v2 v2.13.0 h1:joaL6wxSgm1OZal4FAAyddkL1T4uo5NxHYFkGmUusqE= -github.com/go-resty/resty/v2 v2.13.0/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -590,32 +590,32 @@ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYr github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/openziti/agent v1.0.16 h1:9Saji+8hFE1NpzP2XzDhsVJbCrDlhixoLHfOpFt5Z+U= github.com/openziti/agent v1.0.16/go.mod h1:zfm53+PVWoGFzjGGgQdKby5749G6VRYHe+eQJmoVKy4= -github.com/openziti/channel/v2 v2.0.128 h1:kRigyUmrN1q56ydRmBWzruV0DvVntYx/f2DT2P0qSh4= -github.com/openziti/channel/v2 v2.0.128/go.mod h1:ugebO2eO2CdaVQE45o20iE4R9DK0VRoJsGBZt0x3eLc= +github.com/openziti/channel/v2 v2.0.130 h1:YFIz8xk2XabJXJ8cfG1s6OWPgPnMf9hUdaECqimum88= +github.com/openziti/channel/v2 v2.0.130/go.mod h1:rY6Uq/kewSF0UTUb8B80y2CcrG4w/oYAL3gsperHb4g= 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-api v0.26.18 h1:5V2Hr7gybCrg/XPlqjz3Z8nsCUBsqOm40HjXerYVlqw= -github.com/openziti/edge-api v0.26.18/go.mod h1:FGkZr+55qItptJBHriogJDo64OY85kuiEEWEZsik0+A= +github.com/openziti/edge-api v0.26.19 h1:EqDxmQGQEZ9ngzoFBlI/P7bL+0Xif29GRO8LWKdyYPI= +github.com/openziti/edge-api v0.26.19/go.mod h1:FGkZr+55qItptJBHriogJDo64OY85kuiEEWEZsik0+A= github.com/openziti/fablab v0.5.60 h1:RsqrEb3LV6asK5N97uZKyNSDhcNOeDcAuT4OAD/hY9Y= github.com/openziti/fablab v0.5.60/go.mod h1:B/ib+GOtozEIytv2aXSFl9+dL7AiGfbpGS/VjnNduU8= -github.com/openziti/foundation/v2 v2.0.42 h1:cXZFql3xY92AHPCk/wqIoSUX9EHgegwPrs5bhFE2jNg= -github.com/openziti/foundation/v2 v2.0.42/go.mod h1:a+REYnK9bZ2cvmOiuBLp57MjQqn3U5cHhJcDMLMO8rE= -github.com/openziti/identity v1.0.75 h1:FDm3ZojmmGP9eoOxMvmF52RS6JzToTTeWB0pthIA+ks= -github.com/openziti/identity v1.0.75/go.mod h1:ouF+CYh5ywvvMr0Uy1+tbkILIPTdob5WZEnm3v0bPMQ= +github.com/openziti/foundation/v2 v2.0.45 h1:Dj/CWwV4w0dGCRrAThF0JgZTZ7z4snF1cROCdJeGUKY= +github.com/openziti/foundation/v2 v2.0.45/go.mod h1:88UifYC+Ia6VBQkGgszao/ixi8ymRME0werGo3fI55g= +github.com/openziti/identity v1.0.77 h1:61OoLPeEmnIOOM1U8XlahiC7W/ohhUT3cc0EVZDmfLI= +github.com/openziti/identity v1.0.77/go.mod h1:spm5DvKTn5Q3NcpfOEqYw7PfreuOZ0mmhH+PbGdoYMI= 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.51 h1:+RfVdEGMOmhXBcC/gFIqXeNVnpWt9+cfrbCacFV/e3w= -github.com/openziti/metrics v1.2.51/go.mod h1:qvX8EKF8I42tA4KlNFX+RBx+ywNiVRvJTS4QofDU8KU= -github.com/openziti/runzmd v1.0.43 h1:jQpDQ91I+6kbAM/2QV5s2900/CWgs3HyPhrpCNRQE6E= -github.com/openziti/runzmd v1.0.43/go.mod h1:sTSSi4f3dcgO5w8PgSK4fGAlwR2ajexAlMcEtduuFaU= -github.com/openziti/sdk-golang v0.23.35 h1:7qWgkFIWBgCS+O8sho6hpqKBM7d3NENh5bSUs8wjMeY= -github.com/openziti/sdk-golang v0.23.35/go.mod h1:+eVyqtmY2STTIgtQ9Rze+iemkKM+hAFBWnjHT/u5NWo= -github.com/openziti/secretstream v0.1.19 h1:qSX23lyOI5ROvYPTjy7Lo6eFsq9qBBPzaG5hvgLlw48= -github.com/openziti/secretstream v0.1.19/go.mod h1:1n/Uk8PQEREwB7iQXhUzNqt+8jYEpUZOJDGcetMI08o= -github.com/openziti/storage v0.2.37 h1:VpYtV049yDBkjZEdLQYkc9ixHpKscMXG+02K6pbOwE8= -github.com/openziti/storage v0.2.37/go.mod h1:1fIRgTNyzqoVuC/wAXqpL+QQra+t3MVHp//2XIeG6HM= -github.com/openziti/transport/v2 v2.0.131 h1:K1h3sl04QWQdYGSPSI1aZLufrL44Azw4WmdprzkIMxo= -github.com/openziti/transport/v2 v2.0.131/go.mod h1:N+OPeoqIuZwS72q0XnM4DLHVdKZ3ZOR37rqjOjWA0b8= +github.com/openziti/metrics v1.2.54 h1:NVN/762XqOwUDThwxcpzT/Tc+f+zGUNLvllhMRGTF70= +github.com/openziti/metrics v1.2.54/go.mod h1:5JWuoncTKps8xPdicS8RUloPyu24Q1S4zaG7E8B+Evc= +github.com/openziti/runzmd v1.0.47 h1:w/GopNNwfrkwHgfvFNS0KS8vDtHs4yhypJrporVlyTY= +github.com/openziti/runzmd v1.0.47/go.mod h1:PbsrBZGQXlICIZX24bCT/7Lnos8WZg1GKzjhC2YwAxA= +github.com/openziti/sdk-golang v0.23.37 h1:r7bdmSpqv9y2sCS7p7I42kxAGEflp8pahPQsN9ZKAB0= +github.com/openziti/sdk-golang v0.23.37/go.mod h1:FYFDyzApbyuE6Q7W3uqL0RNWdw/PQZsrMT4zoxGY/04= +github.com/openziti/secretstream v0.1.20 h1:9KOgXkUddf9KHur+B805a8wP0J447AO6Pmtz+eanub0= +github.com/openziti/secretstream v0.1.20/go.mod h1:TteVDQqouIoZgkwZhfiVdbnPNP3m87ik7kg/l9ahXzI= +github.com/openziti/storage v0.2.41 h1:fvbVZr+72+/LJXhtahwGLLj/Ucv/lgEOtBFqOnXf+00= +github.com/openziti/storage v0.2.41/go.mod h1:FSU6WmVMFHB6Z1NVGx5yxWjrDQbYPNrDmPNTgVDgrcM= +github.com/openziti/transport/v2 v2.0.133 h1:fWuADiwvb77mhuIF5F/SIiefiGx2GkrxYPDHLtqNwms= +github.com/openziti/transport/v2 v2.0.133/go.mod h1:UJ2bj41g5Ep7fKvwypS/dGYMKRKPvQPGG/OwB2H84Vw= 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.1.0 h1:Xhh3C2pZkq/Prr65V+SfFSibLDYteoc4f62KQCcTZF4= From f8682c687b7a15a1dc8b315573bd3e7b890087cc Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Wed, 22 May 2024 11:11:50 -0400 Subject: [PATCH 59/72] Don't panic if agent cluster ops are run when not in cluster mode. Fixes #2055 --- CHANGELOG.md | 1 + controller/agent.go | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c70e83fec..61f9e0e12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ ziti edge create service test --terminator-strategy sticky * github.com/openziti/storage: [v0.2.37 -> v0.2.41](https://github.com/openziti/storage/compare/v0.2.37...v0.2.41) * github.com/openziti/transport/v2: [v2.0.131 -> v2.0.133](https://github.com/openziti/transport/compare/v2.0.131...v2.0.133) * github.com/openziti/ziti: [v1.1.2 -> v1.1.3](https://github.com/openziti/ziti/compare/v1.1.2...v1.1.3) + * [Issue #2055](https://github.com/openziti/ziti/issues/2055) - Controller panics on 'ziti agent cluster list' * [Issue #2019](https://github.com/openziti/ziti/issues/2019) - Support mechanism for sticky dials # Release 1.1.2 diff --git a/controller/agent.go b/controller/agent.go index 34e3c4a40..2b26dc504 100644 --- a/controller/agent.go +++ b/controller/agent.go @@ -77,6 +77,11 @@ func (self *Controller) agentOpSnapshotDb(m *channel.Message, ch channel.Channel } func (self *Controller) agentOpRaftList(m *channel.Message, ch channel.Channel) { + if self.raftController == nil { + handler_common.SendOpResult(m, ch, "raft.list", "controller not running in clustered mode", false) + return + } + members, err := self.raftController.ListMembers() if err != nil { handler_common.SendOpResult(m, ch, "raft.list", err.Error(), false) @@ -100,6 +105,11 @@ func (self *Controller) agentOpRaftList(m *channel.Message, ch channel.Channel) } func (self *Controller) agentOpRaftAddPeer(m *channel.Message, ch channel.Channel) { + if self.raftController == nil { + handler_common.SendOpResult(m, ch, "raft.list", "controller not running in clustered mode", false) + return + } + addr, found := m.GetStringHeader(AgentAddrHeader) if !found { handler_common.SendOpResult(m, ch, "raft.join", "address not supplied", false) @@ -137,6 +147,11 @@ func (self *Controller) agentOpRaftAddPeer(m *channel.Message, ch channel.Channe } func (self *Controller) agentOpRaftRemovePeer(m *channel.Message, ch channel.Channel) { + if self.raftController == nil { + handler_common.SendOpResult(m, ch, "raft.list", "controller not running in clustered mode", false) + return + } + id, found := m.GetStringHeader(AgentIdHeader) if !found { handler_common.SendOpResult(m, ch, "cluster.remove-peer", "id not supplied", false) @@ -155,6 +170,11 @@ func (self *Controller) agentOpRaftRemovePeer(m *channel.Message, ch channel.Cha } func (self *Controller) agentOpRaftTransferLeadership(m *channel.Message, ch channel.Channel) { + if self.raftController == nil { + handler_common.SendOpResult(m, ch, "raft.list", "controller not running in clustered mode", false) + return + } + id, _ := m.GetStringHeader(AgentIdHeader) req := &cmd_pb.TransferLeadershipRequest{ Id: id, @@ -168,6 +188,11 @@ func (self *Controller) agentOpRaftTransferLeadership(m *channel.Message, ch cha } func (self *Controller) agentOpInitFromDb(m *channel.Message, ch channel.Channel) { + if self.raftController == nil { + handler_common.SendOpResult(m, ch, "raft.list", "controller not running in clustered mode", false) + return + } + sourceDbPath := string(m.Body) if len(sourceDbPath) == 0 { handler_common.SendOpResult(m, ch, "raft.initFromDb", "source db not supplied", false) From 9cb44b6b3517c2537721d53d9a3a958d4ccbf1e1 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Wed, 22 May 2024 12:12:43 -0400 Subject: [PATCH 60/72] promote downstreams when a published release is marked "latest" --- .github/workflows/main.yml | 53 +++++--- .github/workflows/promote-downstreams.yml | 131 +++++++++++++++++++ .github/workflows/publish-docker-images.yml | 12 -- .github/workflows/publish-linux-packages.yml | 31 +---- 4 files changed, 168 insertions(+), 59 deletions(-) create mode 100644 .github/workflows/promote-downstreams.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a07f66adc..4adceabd8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,6 +29,7 @@ env: CONSUL_ENDPOINT: ${{ secrets.CONSUL_ENDPOINT }} CONSUL_AGENT_CERT: ${{ secrets.CONSUL_AGENT_CERT }} BUILD_NUMBER: ${{ format('{0}-{1}-{2}', github.run_id, github.run_number, github.run_attempt) }} + ZITI_BASE_VERSION: ${{ vars.ZITI_BASE_VERSION || null }} jobs: @@ -55,7 +56,7 @@ jobs: shell: bash run: | go install github.com/mitchellh/gox@latest - $(go env GOPATH)/bin/ziti-ci generate-build-info common/version/info_generated.go version + $(go env GOPATH)/bin/ziti-ci generate-build-info common/version/info_generated.go version ${ZITI_BASE_VERSION:+--base-version $ZITI_BASE_VERSION} $(go env GOPATH)/bin/gox -cgo -os=darwin -arch=amd64 -output=$GOX_OUTPUT ./... $(go env GOPATH)/bin/gox -cgo -os=darwin -arch=arm64 -output=$GOX_OUTPUT ./... @@ -89,7 +90,7 @@ jobs: shell: bash run: | go install github.com/mitchellh/gox@latest - $(go env GOPATH)/bin/ziti-ci generate-build-info common/version/info_generated.go version + $(go env GOPATH)/bin/ziti-ci generate-build-info common/version/info_generated.go version ${ZITI_BASE_VERSION:+--base-version $ZITI_BASE_VERSION} $(go env GOPATH)/bin/gox -cgo -os=windows -arch=amd64 -output=$GOX_OUTPUT ./... - name: Upload artifacts @@ -122,7 +123,7 @@ jobs: sudo apt-get update sudo apt-get -yq install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf gcc-aarch64-linux-gnu $(go env GOPATH)/bin/ziti-ci configure-git - $(go env GOPATH)/bin/ziti-ci generate-build-info common/version/info_generated.go version + $(go env GOPATH)/bin/ziti-ci generate-build-info common/version/info_generated.go version ${ZITI_BASE_VERSION:+--base-version $ZITI_BASE_VERSION} go install github.com/mitchellh/gox@latest $(go env GOPATH)/bin/gox -cgo -os=linux -arch=amd64 -output=$GOX_OUTPUT ./... CC=arm-linux-gnueabihf-gcc $(go env GOPATH)/bin/gox -cgo -os=linux -arch=arm -output=$GOX_OUTPUT ./... @@ -314,7 +315,7 @@ jobs: shell: bash run: | $(go env GOPATH)/bin/ziti-ci configure-git - $(go env GOPATH)/bin/ziti-ci generate-build-info common/version/info_generated.go version + $(go env GOPATH)/bin/ziti-ci generate-build-info common/version/info_generated.go version ${ZITI_BASE_VERSION:+--base-version $ZITI_BASE_VERSION} pushd zititest && go install ./... && popd go install -tags=all,tests ./... @@ -472,11 +473,11 @@ jobs: shell: bash run: | $(go env GOPATH)/bin/ziti-ci configure-git - $(go env GOPATH)/bin/ziti-ci tag -v -f version + $(go env GOPATH)/bin/ziti-ci tag -v -f version ${ZITI_BASE_VERSION:+--base-version $ZITI_BASE_VERSION} $(go env GOPATH)/bin/ziti-ci publish-to-github --prerelease --archive-base "" # only ziti-ci computed version for release branches and {version}-{run_id} for non-release branches - - name: Compute the Ziti Version String for CI Jobs + - name: Compute the Ziti Version String used for Linux Packages and Container Image Tags id: get_version env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -484,22 +485,36 @@ jobs: GITHUB_RUN_ID: ${{ github.run_id }} shell: bash run: | - ZITI_VERSION="$($(go env GOPATH)/bin/ziti-ci -q get-current-version)" - # drop the leading 'v', if any - ZITI_VERSION=${ZITI_VERSION#v} - if ! [[ "${ZITI_VERSION}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - # fail the job because we could not obtain the current version from ziti-ci - echo "ERROR: ZITI_VERSION=${ZITI_VERSION} is not a semver" - exit 1 - elif [[ "${GITHUB_REF}" =~ ^refs/heads/(release-v|main$) ]]; then - # Set output parameters for release branches - echo ZITI_VERSION="${ZITI_VERSION}" | tee -a $GITHUB_OUTPUT + function validateSemver() { + if ! [[ "${1}" =~ ^v?[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "ERROR: ${1} is not a release semver" >&2 + return 1 + fi + } + + echo "DEBUG: GITHUB_REPOSITORY=${GITHUB_REPOSITORY} GITHUB_REF=${GITHUB_REF} GITHUB_RUN_ID=${GITHUB_RUN_ID}" + (set -x; git remote -v show;) + + if [[ "${GITHUB_REF}" =~ ^refs/heads/(release-v|main$) ]]; then + # Set current tag as semver for release branches + ZITI_VERSION="$($(go env GOPATH)/bin/ziti-ci -q get-current-version)" + + validateSemver "${ZITI_VERSION}" + + # drop the leading 'v', if any + ZITI_VERSION=${ZITI_VERSION#v} else - # Append build / run number for non-release refs - ZITI_VERSION="${ZITI_VERSION}-${GITHUB_RUN_ID}" - echo ZITI_VERSION="${ZITI_VERSION}" | tee -a $GITHUB_OUTPUT + # compute next patch level for non-release branches + ZITI_VERSION="$($(go env GOPATH)/bin/ziti-ci -q get-next-version ${ZITI_BASE_VERSION:+--base-version $ZITI_BASE_VERSION})" + + validateSemver "${ZITI_VERSION}" + + # drop the leading 'v', if any, and append run id + ZITI_VERSION=${ZITI_VERSION#v}-${GITHUB_RUN_ID} fi + echo ZITI_VERSION="${ZITI_VERSION}" | tee -a $GITHUB_OUTPUT + call-publish-prerelease-docker-images: # - !cancelled() allows evaluating further conditional expressions even if # needed jobs were skipped diff --git a/.github/workflows/promote-downstreams.yml b/.github/workflows/promote-downstreams.yml new file mode 100644 index 000000000..4a9fcf00a --- /dev/null +++ b/.github/workflows/promote-downstreams.yml @@ -0,0 +1,131 @@ +name: Promote Downstream Releases + +on: + # may be triggered manually on a release tag that represents a prerelease to promote it to a release in the downstream package repositories and Docker Hub + workflow_dispatch: + # automatically trigger if an existing GitHub release is marked "latest" + release: + types: [released] # this release event activity type excludes prereleases + +# cancel older, redundant runs of same workflow on same branch +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} + cancel-in-progress: true + +env: + RELEASE_REF: ${{ github.ref}} + +jobs: + wait_for_release: + name: Wait for Release Builds to Succeed + runs-on: ubuntu-latest + steps: + - name: Debug action + uses: hmarr/debug-action@v3 + + - name: Wait for all checks on this ref + uses: lewagon/wait-on-check-action@v1.3.1 + with: + ref: ${{ env.RELEASE_REF }} + repo-token: ${{ secrets.GITHUB_TOKEN }} + # seconds between polling the checks api for job statuses + wait-interval: 20 + # confusingly, this means "pause this step until all jobs from all workflows in same run have completed" + running-workflow-name: Wait for Release Builds to Succeed + + parse_version: + needs: wait_for_release + name: Parse Release Version + runs-on: ubuntu-latest + outputs: + version: ${{ steps.parse.outputs.version }} + steps: + - name: Parse Release Version + id: parse + shell: bash + run: | + if [[ "${RELEASE_REF}" =~ ^refs\/tags\/v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "RELEASE_REF=${RELEASE_REF} is a semver release ref" + echo "version=${RELEASE_REF#refs/tags/v}" | tee -a $GITHUB_OUTPUT + else + echo "RELEASE_REF=${RELEASE_REF} is not a semver release ref" >&2 + exit 1 + fi + + promote_docker: + name: Tag Container Image ${{ matrix.image.repo }}:latest + needs: parse_version + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + image: + - repo: ${{ vars.ZITI_CLI_IMAGE || 'docker.io/openziti/ziti-cli' }} + - repo: ${{ vars.ZITI_CONTROLLER_IMAGE || 'docker.io/openziti/ziti-controller' }} + - repo: ${{ vars.ZITI_ROUTER_IMAGE || 'docker.io/openziti/ziti-router' }} + - repo: ${{ vars.ZITI_TUNNEL_IMAGE || 'docker.io/openziti/ziti-tunnel' }} + steps: + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ vars.DOCKER_HUB_API_USER || secrets.DOCKER_HUB_API_USER }} + password: ${{ secrets.DOCKER_HUB_API_TOKEN }} + + - name: Tag Latest + shell: bash + run: > + docker buildx imagetools create --tag + ${{ matrix.image.repo }}:latest + ${{ matrix.image.repo }}:${{ needs.parse_version.outputs.version }} + + promote_artifactory: + name: Promote ${{ matrix.package_name }}-${{ matrix.arch.rpm }}.${{ matrix.nfpm_packager }} + needs: parse_version + strategy: + fail-fast: true + matrix: + package_name: + - openziti + - openziti-controller + - openziti-router + arch: + - deb: amd64 + rpm: x86_64 + - deb: arm64 + rpm: aarch64 + - deb: armv7 + rpm: armv7 + nfpm_packager: + - rpm + - deb + runs-on: ubuntu-latest + env: + ZITI_DEB_TEST_REPO: ${{ vars.ZITI_DEB_TEST_REPO || 'zitipax-openziti-deb-test' }} + ZITI_RPM_TEST_REPO: ${{ vars.ZITI_RPM_TEST_REPO || 'zitipax-openziti-rpm-test' }} + ZITI_DEB_PROD_REPO: ${{ vars.ZITI_DEB_PROD_REPO || 'zitipax-openziti-deb-stable' }} + ZITI_RPM_PROD_REPO: ${{ vars.ZITI_RPM_PROD_REPO || 'zitipax-openziti-rpm-stable' }} + steps: + - name: Configure jFrog CLI + uses: jfrog/setup-jfrog-cli@v4 + env: + JF_ENV_1: ${{ secrets.ZITI_ARTIFACTORY_CLI_CONFIG_PACKAGE_UPLOAD }} + + - name: Copy RPM from test repo to stable repo with jFrog CLI + if: matrix.nfpm_packager == 'rpm' + shell: bash + run: > + jf rt copy + --recursive=false + --flat=true + ${{ env.ZITI_RPM_TEST_REPO }}/redhat/${{ matrix.arch.rpm }}/${{ matrix.package_name }}-${{ needs.parse_version.outputs.version }}.${{ matrix.arch.rpm }}.rpm + ${{ env.ZITI_RPM_PROD_REPO }}/redhat/${{ matrix.arch.rpm }}/ + + - name: Copy DEB from test repo to stable repo with jFrog CLI + if: matrix.nfpm_packager == 'deb' + shell: bash + run: > + jf rt copy + --recursive=false + --flat=true + ${{ env.ZITI_DEB_TEST_REPO }}/pool/${{ matrix.package_name }}/${{ matrix.arch.deb }}/${{ matrix.package_name }}_${{ needs.parse_version.outputs.version }}_*.deb + ${{ env.ZITI_DEB_PROD_REPO }}/pool/${{ matrix.package_name }}/${{ matrix.arch.deb }}/ diff --git a/.github/workflows/publish-docker-images.yml b/.github/workflows/publish-docker-images.yml index 105e13ccd..0b01ef352 100644 --- a/.github/workflows/publish-docker-images.yml +++ b/.github/workflows/publish-docker-images.yml @@ -53,9 +53,6 @@ jobs: run: | DOCKER_TAGS="" DOCKER_TAGS="${IMAGE_REPO}:${IMAGE_TAG}" - 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 @@ -83,9 +80,6 @@ jobs: run: | DOCKER_TAGS="" DOCKER_TAGS="${IMAGE_REPO}:${IMAGE_TAG}" - 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 @@ -115,9 +109,6 @@ jobs: run: | DOCKER_TAGS="" DOCKER_TAGS="${IMAGE_REPO}:${IMAGE_TAG}" - if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then - DOCKER_TAGS+=",${IMAGE_REPO}:latest" - fi echo DOCKER_TAGS="${DOCKER_TAGS}" | tee -a $GITHUB_OUTPUT - name: Build & Push Multi-Platform Router Container Image to Hub @@ -145,9 +136,6 @@ jobs: DOCKER_TAGS="" for REPO in ${LEGACY_REPO} ${IMAGE_REPO}; do DOCKER_TAGS="${IMAGE_REPO}:${IMAGE_TAG}" - 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}" diff --git a/.github/workflows/publish-linux-packages.yml b/.github/workflows/publish-linux-packages.yml index dce550973..f27352f6e 100644 --- a/.github/workflows/publish-linux-packages.yml +++ b/.github/workflows/publish-linux-packages.yml @@ -4,7 +4,7 @@ on: workflow_call: inputs: ziti-version: - description: generated by 'ziti-ci get-current-version' + description: generated by ziti-ci type: string required: true @@ -44,9 +44,7 @@ jobs: GOARCH: ${{ matrix.arch.goreleaser }} MINIMUM_SYSTEMD_VERSION: 232 ZITI_DEB_TEST_REPO: ${{ vars.ZITI_DEB_TEST_REPO || 'zitipax-openziti-deb-test' }} - ZITI_DEB_PROD_REPO: ${{ vars.ZITI_DEB_PROD_REPO || 'zitipax-openziti-deb-stable' }} ZITI_RPM_TEST_REPO: ${{ vars.ZITI_RPM_TEST_REPO || 'zitipax-openziti-rpm-test' }} - ZITI_RPM_PROD_REPO: ${{ vars.ZITI_RPM_PROD_REPO || 'zitipax-openziti-rpm-stable' }} steps: - name: Checkout Workspace uses: actions/checkout@v4 @@ -93,7 +91,7 @@ jobs: JF_ENV_1: ${{ secrets.ZITI_ARTIFACTORY_CLI_CONFIG_PACKAGE_UPLOAD }} - name: Upload RPM to Artifactory testing repo - if: github.ref == 'refs/heads/release-next' && matrix.nfpm_packager == 'rpm' + if: matrix.nfpm_packager == 'rpm' shell: bash run: > jf rt upload @@ -102,19 +100,8 @@ jobs: --recursive=false --flat=true - - name: Upload RPM to Artifactory release repo - if: (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release-v')) - && matrix.nfpm_packager == 'rpm' - shell: bash - run: > - jf rt upload - ./release/${{ matrix.package_name }}*.rpm - ${{ env.ZITI_RPM_PROD_REPO }}/redhat/${{ matrix.arch.rpm }}/ - --recursive=false - --flat=true - - name: Upload DEB to Artifactory testing repo - if: github.ref == 'refs/heads/release-next' && matrix.nfpm_packager == 'deb' + if: matrix.nfpm_packager == 'deb' shell: bash run: > jf rt upload @@ -123,15 +110,3 @@ jobs: --deb=debian/main/${{ matrix.arch.deb }} --recursive=false --flat=true - - - name: Upload DEB to Artifactory release repo - if: (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release-v')) - && matrix.nfpm_packager == 'deb' - shell: bash - run: > - jf rt upload - ./release/${{ matrix.package_name }}*.deb - ${{ env.ZITI_DEB_PROD_REPO }}/pool/${{ matrix.package_name }}/${{ matrix.arch.deb }}/ - --deb=debian/main/${{ matrix.arch.deb }} - --recursive=false - --flat=true From 408720459f8985dd01d4e36857d8e42f988539f9 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Wed, 22 May 2024 20:14:57 -0400 Subject: [PATCH 61/72] document downstream artifacts --- RELEASING.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/RELEASING.md b/RELEASING.md index d52dbd27b..5b8b31c0f 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -65,3 +65,30 @@ Perform these steps in the release-next (trunk) branch which is based on main to 1. Create a PR to merge release-next to main. Release happens by merging from the release-next branch to main. 2. Ensure PR checks succeed. + +## Downstreams + +These downstreams are built on push to GitHub branches: **release-next**, **release-v***, and **main**. + +- Linux packages + - `openziti` - provides `/usr/bin/ziti` + - `openziti-controller` - provides `ziti-controller.service` + - `openziti-router` - provides `ziti-router.service` +- Container Images + - `openziti/ziti-cli` - provides `/usr/local/bin/ziti` + - `openziti/ziti-controller` - built from `ziti-cli` and `ziti-console-assets` and executes `ziti controller run` + - `openziti/ziti-router` - built from `ziti-cli`and executes `ziti router run` + +### Promoting Downstreams + +The downstream artifacts are named and handled as follows. + +- push to `release-next` + - Linux packages are published in the test repos with a release candidate semver, e.g. `1.0.1~123` where `1.0.0` is the highest semver tag in the repo and `123` is the build number. These release candidate semvers are higher versions than latest so that they are installed by default on devices subscribed to a test repo. + - Container images are pushed to the `:release-next` tag. +- push to `release-v*` or `main` + - Linux packages are published in the test repos with a release semver, e.g. `1.0.1`. + - Container images are pushed to a release semver tag, e.g. `:1.0.1`. +- GitHub pre-release is marked "latest" + - Linux packages for the release are copied from the "test" repos to the "stable" repos. + - Container images' semver release tags are re-tagged as `:latest`. From 3edb8cdb47715e58bc3461ae7c040df7d1f8fba4 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 23 May 2024 10:58:55 -0400 Subject: [PATCH 62/72] let deployments use default pfxlog library formats (non-ineractive=json, interactive=text) --- CHANGELOG.md | 2 ++ dist/dist-packages/linux/openziti-controller/service.env | 2 -- dist/dist-packages/linux/openziti-router/service.env | 2 -- dist/docker-images/ziti-controller/Dockerfile | 1 - dist/docker-images/ziti-router/Dockerfile | 1 - 5 files changed, 2 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61f9e0e12..e6373a321 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ ## What's New * Sticky Terminator Selection +* Linux and Docker deployments log formats no longer default to the simplified format option and now use logging library + defaults: `json` for non-interactive, `text` for interactive. ## Stick Terminator Strategy diff --git a/dist/dist-packages/linux/openziti-controller/service.env b/dist/dist-packages/linux/openziti-controller/service.env index 7d2ebaaff..6ab42597f 100644 --- a/dist/dist-packages/linux/openziti-controller/service.env +++ b/dist/dist-packages/linux/openziti-controller/service.env @@ -9,7 +9,5 @@ ZITI_BOOTSTRAP_CONFIG=true ZITI_BOOTSTRAP_DATABASE=true # BASH script that defines function bootstrap() ZITI_CTRL_BOOTSTRAP_BASH=/opt/openziti/etc/controller/bootstrap.bash -# disable JSON logging during bootstrapping -PFXLOG_NO_JSON=true # renew server and client certificates every startup ZITI_AUTO_RENEW_CERTS=true diff --git a/dist/dist-packages/linux/openziti-router/service.env b/dist/dist-packages/linux/openziti-router/service.env index 8d49b3339..570b1d3d9 100644 --- a/dist/dist-packages/linux/openziti-router/service.env +++ b/dist/dist-packages/linux/openziti-router/service.env @@ -8,5 +8,3 @@ ZITI_BOOTSTRAP_ENROLLMENT=true ZITI_ROUTER_BOOTSTRAP_BASH=/opt/openziti/etc/router/bootstrap.bash # renew server and client certificates every startup ZITI_AUTO_RENEW_CERTS=true -# disable JSON logging -PFXLOG_NO_JSON=true diff --git a/dist/docker-images/ziti-controller/Dockerfile b/dist/docker-images/ziti-controller/Dockerfile index 38b57cf26..78a35971d 100644 --- a/dist/docker-images/ziti-controller/Dockerfile +++ b/dist/docker-images/ziti-controller/Dockerfile @@ -40,7 +40,6 @@ RUN chown -R ziggy:ziggy /ziti-controller /ziti-console WORKDIR /ziti-controller # configure logging -ENV PFXLOG_NO_JSON=true ENV ZITI_TIME_FORMAT=utc # globally toggle bootstrapping; false preserves "thin" behavior for existing deployments like K8s diff --git a/dist/docker-images/ziti-router/Dockerfile b/dist/docker-images/ziti-router/Dockerfile index 4140dc6a1..c5ab2d021 100644 --- a/dist/docker-images/ziti-router/Dockerfile +++ b/dist/docker-images/ziti-router/Dockerfile @@ -33,7 +33,6 @@ RUN chown -R ziggy:ziggy /ziti-router USER ziggy # configure logging -ENV PFXLOG_NO_JSON=true ENV ZITI_TIME_FORMAT=utc # globally toggle bootstrapping; false preserves "thin" behavior for existing deployments like K8s From 43a73fccaf54521ed1833d07b773294f2f625b83 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 23 May 2024 11:26:16 -0400 Subject: [PATCH 63/72] document rolling back downstreams --- RELEASING.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/RELEASING.md b/RELEASING.md index 5b8b31c0f..6a87ba0dd 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -92,3 +92,56 @@ The downstream artifacts are named and handled as follows. - GitHub pre-release is marked "latest" - Linux packages for the release are copied from the "test" repos to the "stable" repos. - Container images' semver release tags are re-tagged as `:latest`. + +### Rolling Back Downstreams + +If a release is found to be faulty, the downstream artifacts can be rolled back as follows. + +The first step is to ensure the GitHub release is not marked "latest," and the highest good release is marked "latest." Do not delete the faulty release (assets) or Git tag. + +- Linux packages - The released semver is removed from the stable repo and must not be re-used. To arm this script, uncomment the `DELETE="--quiet"` line and set `BAD_VERSION`. + + ```bash + (set -euxopipefail + + ARTIFACTORY_REPO='zitipax-openziti-(rpm|deb)-stable' + DELETE="--dry-run" + : DELETE="--quiet" + BAD_VERSION=0.0.1 + + declare -a ARTIFACTS=(openziti{,-controller,-router}) + + if [[ $DELETE =~ quiet ]] && { + echo "WARNING: permanently deleting" >&2; + sleep 9; + } + + for META in rpm.metadata deb; + do + for ARTIFACT in ${ARTIFACTS[@]}; + do + while read; + do + jf rt search --props "${META}.name=${ARTIFACT};${META}.version=${BAD_VERSION}" "${REPLY}/*" \ + | jq '.[].path' \ + | xargs -rl jf rt del $DELETE; + done< <( + jf rt cl -sS /api/repositories \ + | jq --raw-output --arg artifactory "${ARTIFACTORY_REPO}" '.[]|select(.key|match($artifactory))|.key' + ) + done + done + ) + ``` + +- Container images - The `:latest` tag is moved to the last good release semver. To ready the script, set `GOOD_VERSION`. + + ```bash + (set -euxopipefail + GOOD_VERSION=1.0.0 + + for REPO in ziti-{cli,controller,router}; do + docker buildx imagetools create --tag openziti/${REPO}:latest openziti/${REPO}:${GOOD_VERSION} + done + ) + ``` From 020da089f15ae55c5f1556f7798e5dab6a8da3ef Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 23 May 2024 11:40:20 -0400 Subject: [PATCH 64/72] also roll back ziti-tunnel container image --- RELEASING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASING.md b/RELEASING.md index 6a87ba0dd..171d90bc4 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -140,7 +140,7 @@ The first step is to ensure the GitHub release is not marked "latest," and the h (set -euxopipefail GOOD_VERSION=1.0.0 - for REPO in ziti-{cli,controller,router}; do + for REPO in ziti-{cli,controller,router,tunnel}; do docker buildx imagetools create --tag openziti/${REPO}:latest openziti/${REPO}:${GOOD_VERSION} done ) From 8f0cc2e4aed699d5b3370e89dd29048052b64e5c Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Fri, 24 May 2024 13:35:53 -0400 Subject: [PATCH 65/72] bump trust manager version --- quickstart/kubernetes/miniziti.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstart/kubernetes/miniziti.bash b/quickstart/kubernetes/miniziti.bash index 99d76df51..781cdbb57 100644 --- a/quickstart/kubernetes/miniziti.bash +++ b/quickstart/kubernetes/miniziti.bash @@ -768,7 +768,7 @@ main(){ kubectlWrapper apply \ --filename https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.crds.yaml >&3 kubectlWrapper apply \ - --filename https://raw.githubusercontent.com/cert-manager/trust-manager/v0.4.0/deploy/crds/trust.cert-manager.io_bundles.yaml >&3 + --filename https://raw.githubusercontent.com/cert-manager/trust-manager/v0.9.0/deploy/crds/trust.cert-manager.io_bundles.yaml >&3 declare -A HELM_REPOS HELM_REPOS[openziti]="openziti.io/helm-charts" From 5015553aa1af1d21b5b70b3c0f900c54d449bd33 Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Tue, 28 May 2024 10:46:28 -0400 Subject: [PATCH 66/72] appease Codespell --- changelogs/CHANGELOG.0.26.md | 2 +- changelogs/CHANGELOG.0.32.md | 2 +- controller/xt_weighted/impl.go | 2 +- doc/transwarp_b1/transwarp_b1.md | 2 +- etc/ctrl.with.edge.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/changelogs/CHANGELOG.0.26.md b/changelogs/CHANGELOG.0.26.md index 2e48b1791..3c3cf5f77 100644 --- a/changelogs/CHANGELOG.0.26.md +++ b/changelogs/CHANGELOG.0.26.md @@ -709,7 +709,7 @@ as dialing entities. 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. +Previously when latency probes/heartbeats 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. diff --git a/changelogs/CHANGELOG.0.32.md b/changelogs/CHANGELOG.0.32.md index 8beab2c6a..0964af3fc 100644 --- a/changelogs/CHANGELOG.0.32.md +++ b/changelogs/CHANGELOG.0.32.md @@ -87,7 +87,7 @@ Example configuration: ``` edge: - # This section allows configurating the rate limiter for auth attempts + # This section allows configuring the rate limiter for auth attempts authRateLimiter: # if disabled, no auth rate limiting with be enforced enabled: true diff --git a/controller/xt_weighted/impl.go b/controller/xt_weighted/impl.go index cf54ecd28..b7845124a 100644 --- a/controller/xt_weighted/impl.go +++ b/controller/xt_weighted/impl.go @@ -26,7 +26,7 @@ import ( /** The weighted strategy does random selection of available strategies in proportion to the terminator costs. So if a -given terminator has twice the fully evaluated cost as another terminator it should idealy be selected roughly half +given terminator has twice the fully evaluated cost as another terminator it should ideally be selected roughly half as often. */ diff --git a/doc/transwarp_b1/transwarp_b1.md b/doc/transwarp_b1/transwarp_b1.md index cf62a2064..c9806625e 100644 --- a/doc/transwarp_b1/transwarp_b1.md +++ b/doc/transwarp_b1/transwarp_b1.md @@ -399,7 +399,7 @@ From there, you can zoom in on the dataset in detail: ### Comparing Against TCP -We can run the scenerio again, swapping in the `tcp` protocol instead of the `westworld3` protocol by invoking the `dilithium tunnel server` and `client` like this: +We can run the scenario again, swapping in the `tcp` protocol instead of the `westworld3` protocol by invoking the `dilithium tunnel server` and `client` like this: ``` [fedora@ip-10-0-0-217 ~]$ fablab/bin/dilithium tunnel server 0.0.0.0:6262 127.0.0.1:22 -p tcp diff --git a/etc/ctrl.with.edge.yml b/etc/ctrl.with.edge.yml index bbfa0ab21..000845a79 100644 --- a/etc/ctrl.with.edge.yml +++ b/etc/ctrl.with.edge.yml @@ -108,7 +108,7 @@ healthChecks: # 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 allows configurating the rate limiter for auth attempts + # This section allows configuring the rate limiter for auth attempts authRateLimiter: # if disabled, no auth rate limiting with be enforced enabled: true From 4be4940397557165f18a00af458b1efd9f972f9b Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Tue, 28 May 2024 11:50:33 -0400 Subject: [PATCH 67/72] Add some randomization to link dial retry times. Fixes #2062 --- router/link/link_state.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/router/link/link_state.go b/router/link/link_state.go index fd8972916..d814c2f63 100644 --- a/router/link/link_state.go +++ b/router/link/link_state.go @@ -21,6 +21,7 @@ import ( "github.com/michaelquigley/pfxlog" "github.com/openziti/ziti/common/pb/ctrl_pb" "github.com/openziti/ziti/router/xlink" + "math/rand" "sync/atomic" "time" ) @@ -180,7 +181,12 @@ func (self *linkState) dialFailed(registry *linkRegistryImpl) { backoffConfig = self.dialer.GetUnhealthyBackoffConfig() } - self.retryDelay = time.Duration(float64(self.retryDelay) * backoffConfig.GetRetryBackoffFactor()) + factor := backoffConfig.GetRetryBackoffFactor() + (rand.Float64() - 0.5) + if factor < 1 { + factor = 1 + } + + self.retryDelay = time.Duration(float64(self.retryDelay) * factor) if self.retryDelay < backoffConfig.GetMinRetryInterval() { self.retryDelay = backoffConfig.GetMinRetryInterval() } From 8240d1563a49c43f3ce7c7184e485e3abad1d358 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Tue, 28 May 2024 11:52:42 -0400 Subject: [PATCH 68/72] Fix panic on link close. Fixes #2064 --- router/xlink_transport/dialer.go | 29 ++++++++++++++++----------- router/xlink_transport/listener.go | 24 ++++++++++++++-------- router/xlink_transport/xlink_split.go | 11 ++++++++++ 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/router/xlink_transport/dialer.go b/router/xlink_transport/dialer.go index a62d73214..b4ed35a10 100644 --- a/router/xlink_transport/dialer.go +++ b/router/xlink_transport/dialer.go @@ -210,19 +210,24 @@ type splitDialBindHandler struct { } func (self *splitDialBindHandler) bindPayloadChannel(binding channel.Binding) error { - self.link.payloadCh = binding.GetChannel() - bindHandler := self.dialer.bindHandlerFactory.NewBindHandler(self.link, true, false) - if err := bindHandler.BindChannel(binding); err != nil { - return errors.Wrapf(err, "error accepting outgoing payload channel for [l/%s]", self.link.id) - } - return nil + return self.link.syncInit(func() error { + self.link.payloadCh = binding.GetChannel() + bindHandler := self.dialer.bindHandlerFactory.NewBindHandler(self.link, true, false) + if err := bindHandler.BindChannel(binding); err != nil { + return errors.Wrapf(err, "error accepting outgoing payload channel for [l/%s]", self.link.id) + } + return nil + }) } func (self *splitDialBindHandler) bindAckChannel(binding channel.Binding) error { - self.link.ackCh = binding.GetChannel() - bindHandler := self.dialer.bindHandlerFactory.NewBindHandler(self.link, false, false) - if err := bindHandler.BindChannel(binding); err != nil { - return errors.Wrapf(err, "error accepting outgoing ack channel for [l/%s]", self.link.id) - } - return nil + return self.link.syncInit(func() error { + + self.link.ackCh = binding.GetChannel() + bindHandler := self.dialer.bindHandlerFactory.NewBindHandler(self.link, false, false) + if err := bindHandler.BindChannel(binding); err != nil { + return errors.Wrapf(err, "error accepting outgoing ack channel for [l/%s]", self.link.id) + } + return nil + }) } diff --git a/router/xlink_transport/listener.go b/router/xlink_transport/listener.go index 441053a66..0146a61c3 100644 --- a/router/xlink_transport/listener.go +++ b/router/xlink_transport/listener.go @@ -225,16 +225,24 @@ func (self *listener) getOrCreateSplitLink(connId string, linkMeta *linkMetadata } if chanType == PayloadChannel { - if link.payloadCh == nil { - link.payloadCh = binding.GetChannel() - } else { - return false, nil, errors.Errorf("got two payload channels for link %v", binding.GetChannel().Id()) + if err := link.syncInit(func() error { + if link.payloadCh == nil { + link.payloadCh = binding.GetChannel() + return nil + } + return errors.Errorf("got two payload channels for link %v", binding.GetChannel().Id()) + }); err != nil { + return false, nil, err } } else if chanType == AckChannel { - if link.ackCh == nil { - link.ackCh = binding.GetChannel() - } else { - return false, nil, errors.Errorf("got two ack channels for link %v", binding.GetChannel().Id()) + if err := link.syncInit(func() error { + if link.ackCh == nil { + link.ackCh = binding.GetChannel() + return nil + } + return errors.Errorf("got two ack channels for link %v", binding.GetChannel().Id()) + }); err != nil { + return false, nil, err } } else { return false, nil, errors.Errorf("invalid channel type %v", chanType) diff --git a/router/xlink_transport/xlink_split.go b/router/xlink_transport/xlink_split.go index 6c71d45b2..54f1703cf 100644 --- a/router/xlink_transport/xlink_split.go +++ b/router/xlink_transport/xlink_split.go @@ -23,6 +23,7 @@ import ( "github.com/openziti/ziti/common/pb/ctrl_pb" "github.com/openziti/ziti/router/xgress" "github.com/pkg/errors" + "sync" "sync/atomic" ) @@ -41,6 +42,7 @@ type splitImpl struct { dialed bool iteration uint32 dupsRejected uint32 + lock sync.Mutex } func (self *splitImpl) Id() string { @@ -62,6 +64,12 @@ func (self *splitImpl) Init(metricsRegistry metrics.Registry) error { return nil } +func (self *splitImpl) syncInit(f func() error) error { + self.lock.Lock() + defer self.lock.Unlock() + return f() +} + func (self *splitImpl) SendPayload(msg *xgress.Payload) error { sent, err := self.payloadCh.TrySend(msg.Marshall()) if err == nil && !sent { @@ -96,6 +104,9 @@ func (self *splitImpl) AreFaultsSent() bool { } func (self *splitImpl) Close() error { + self.lock.Lock() + defer self.lock.Unlock() + if self.droppedMsgMeter != nil { self.droppedMsgMeter.Dispose() } From 34ad5ea943fcb1786d01f93d66d83fd5dd6c870f Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Tue, 28 May 2024 11:52:54 -0400 Subject: [PATCH 69/72] Return router hosts to c5.xlarge. t3.large was too cpu limited. --- zititest/models/links-test/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zititest/models/links-test/main.go b/zititest/models/links-test/main.go index 653ce3869..09d9207e0 100644 --- a/zititest/models/links-test/main.go +++ b/zititest/models/links-test/main.go @@ -100,7 +100,7 @@ var m = &model.Model{ }), model.FactoryFunc(func(m *model.Model) error { return m.ForEachHost("component.router", 1, func(host *model.Host) error { - host.InstanceType = "t3.large" + host.InstanceType = "c5.xlarge" return nil }) }), From 4bb416dfa00c15456617ff6f2ff8b4b10aeef019 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Tue, 28 May 2024 11:54:37 -0400 Subject: [PATCH 70/72] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6373a321..8b1073953 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,6 +51,8 @@ ziti edge create service test --terminator-strategy sticky * github.com/openziti/storage: [v0.2.37 -> v0.2.41](https://github.com/openziti/storage/compare/v0.2.37...v0.2.41) * github.com/openziti/transport/v2: [v2.0.131 -> v2.0.133](https://github.com/openziti/transport/compare/v2.0.131...v2.0.133) * github.com/openziti/ziti: [v1.1.2 -> v1.1.3](https://github.com/openziti/ziti/compare/v1.1.2...v1.1.3) + * [Issue #2064](https://github.com/openziti/ziti/issues/2064) - Fix panic on link close + * [Issue #2062](https://github.com/openziti/ziti/issues/2062) - Link connection retry delays should contain some randomization * [Issue #2055](https://github.com/openziti/ziti/issues/2055) - Controller panics on 'ziti agent cluster list' * [Issue #2019](https://github.com/openziti/ziti/issues/2019) - Support mechanism for sticky dials From 97b9b4417129758ac1abb1da924a3bac153855e6 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Tue, 28 May 2024 13:30:07 -0400 Subject: [PATCH 71/72] Spelling fixes from codespell --- changelogs/CHANGELOG.0.26.md | 2 +- changelogs/CHANGELOG.0.32.md | 2 +- changelogs/CHANGELOG.0.7.md | 2 +- controller/api_impl/raft_router.go | 4 +- controller/rest_client/raft/raft_client.go | 16 +- ...=> raft_transfer_leadership_parameters.go} | 72 ++--- ... => raft_transfer_leadership_responses.go} | 106 +++---- .../rest_server/configure_ziti_fabric.go | 6 +- controller/rest_server/embedded_spec.go | 4 +- .../raft/raft_tranfer_leadership_responses.go | 258 ------------------ ...dership.go => raft_transfer_leadership.go} | 28 +- ...=> raft_transfer_leadership_parameters.go} | 16 +- .../raft_transfer_leadership_responses.go | 258 ++++++++++++++++++ ...=> raft_transfer_leadership_urlbuilder.go} | 22 +- .../rest_server/operations/ziti_fabric_api.go | 14 +- controller/specs/swagger.yml | 2 +- controller/xt_weighted/impl.go | 2 +- doc/transwarp_b1/transwarp_b1.md | 2 +- etc/ctrl.with.edge.yml | 2 +- ziti/cmd/fabric/raft.go | 2 +- 20 files changed, 410 insertions(+), 410 deletions(-) rename controller/rest_client/raft/{raft_tranfer_leadership_parameters.go => raft_transfer_leadership_parameters.go} (51%) rename controller/rest_client/raft/{raft_tranfer_leadership_responses.go => raft_transfer_leadership_responses.go} (50%) delete mode 100644 controller/rest_server/operations/raft/raft_tranfer_leadership_responses.go rename controller/rest_server/operations/raft/{raft_tranfer_leadership.go => raft_transfer_leadership.go} (62%) rename controller/rest_server/operations/raft/{raft_tranfer_leadership_parameters.go => raft_transfer_leadership_parameters.go} (83%) create mode 100644 controller/rest_server/operations/raft/raft_transfer_leadership_responses.go rename controller/rest_server/operations/raft/{raft_tranfer_leadership_urlbuilder.go => raft_transfer_leadership_urlbuilder.go} (79%) diff --git a/changelogs/CHANGELOG.0.26.md b/changelogs/CHANGELOG.0.26.md index 2e48b1791..3c3cf5f77 100644 --- a/changelogs/CHANGELOG.0.26.md +++ b/changelogs/CHANGELOG.0.26.md @@ -709,7 +709,7 @@ as dialing entities. 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. +Previously when latency probes/heartbeats 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. diff --git a/changelogs/CHANGELOG.0.32.md b/changelogs/CHANGELOG.0.32.md index 8beab2c6a..0964af3fc 100644 --- a/changelogs/CHANGELOG.0.32.md +++ b/changelogs/CHANGELOG.0.32.md @@ -87,7 +87,7 @@ Example configuration: ``` edge: - # This section allows configurating the rate limiter for auth attempts + # This section allows configuring the rate limiter for auth attempts authRateLimiter: # if disabled, no auth rate limiting with be enforced enabled: true diff --git a/changelogs/CHANGELOG.0.7.md b/changelogs/CHANGELOG.0.7.md index a2ac9376c..58739c30d 100644 --- a/changelogs/CHANGELOG.0.7.md +++ b/changelogs/CHANGELOG.0.7.md @@ -108,7 +108,7 @@ earlier bbolt database, the following will be done: 3. If a service belongs to 1 or more clusters it will get a role attribute corresponding to the first cluster. Any edge routers assigned to additional clusters will be added to edge router roles field by ID. - 1. Noe: If we were to add additional role clusters for the other clusts we'd get the + 1. Note: If we were to add additional role clusters for the other clusters we'd get the intersection, not the union and would end up with access to 0 edge routers ## Session changes diff --git a/controller/api_impl/raft_router.go b/controller/api_impl/raft_router.go index a12319eea..598de5532 100644 --- a/controller/api_impl/raft_router.go +++ b/controller/api_impl/raft_router.go @@ -62,7 +62,7 @@ func (r *RaftRouter) Register(fabricApi *operations.ZitiFabricAPI, wrapper Reque }, params.HTTPRequest, "", "") }) - fabricApi.RaftRaftTranferLeadershipHandler = raft.RaftTranferLeadershipHandlerFunc(func(params raft.RaftTranferLeadershipParams) middleware.Responder { + fabricApi.RaftRaftTransferLeadershipHandler = raft.RaftTransferLeadershipHandlerFunc(func(params raft.RaftTransferLeadershipParams) middleware.Responder { return wrapper.WrapRequest(func(network *network.Network, rc api.RequestContext) { r.transferLeadership(network, rc, params) }, params.HTTPRequest, "", "") @@ -162,7 +162,7 @@ func (r *RaftRouter) removeMember(n *network.Network, rc api.RequestContext, par } } -func (r *RaftRouter) transferLeadership(n *network.Network, rc api.RequestContext, params raft.RaftTranferLeadershipParams) { +func (r *RaftRouter) transferLeadership(n *network.Network, rc api.RequestContext, params raft.RaftTransferLeadershipParams) { raftController := r.getRaftController(n) if raftController != nil { req := &cmd_pb.TransferLeadershipRequest{ diff --git a/controller/rest_client/raft/raft_client.go b/controller/rest_client/raft/raft_client.go index 1e862b767..afc01f9b5 100644 --- a/controller/rest_client/raft/raft_client.go +++ b/controller/rest_client/raft/raft_client.go @@ -60,7 +60,7 @@ type ClientService interface { RaftMemberRemove(params *RaftMemberRemoveParams, opts ...ClientOption) (*RaftMemberRemoveOK, error) - RaftTranferLeadership(params *RaftTranferLeadershipParams, opts ...ClientOption) (*RaftTranferLeadershipOK, error) + RaftTransferLeadership(params *RaftTransferLeadershipParams, opts ...ClientOption) (*RaftTransferLeadershipOK, error) SetTransport(transport runtime.ClientTransport) } @@ -186,24 +186,24 @@ func (a *Client) RaftMemberRemove(params *RaftMemberRemoveParams, opts ...Client } /* - RaftTranferLeadership attempts to transfer leadership to a different member of the cluster + RaftTransferLeadership attempts to transfer leadership to a different member of the cluster Attempts to transfer leadership to a different member of the cluster. Requires admin access. */ -func (a *Client) RaftTranferLeadership(params *RaftTranferLeadershipParams, opts ...ClientOption) (*RaftTranferLeadershipOK, error) { +func (a *Client) RaftTransferLeadership(params *RaftTransferLeadershipParams, opts ...ClientOption) (*RaftTransferLeadershipOK, error) { // TODO: Validate the params before sending if params == nil { - params = NewRaftTranferLeadershipParams() + params = NewRaftTransferLeadershipParams() } op := &runtime.ClientOperation{ - ID: "raftTranferLeadership", + ID: "raftTransferLeadership", Method: "POST", PathPattern: "/raft/transfer-leadership", ProducesMediaTypes: []string{"application/json"}, ConsumesMediaTypes: []string{"application/json"}, Schemes: []string{"https"}, Params: params, - Reader: &RaftTranferLeadershipReader{formats: a.formats}, + Reader: &RaftTransferLeadershipReader{formats: a.formats}, Context: params.Context, Client: params.HTTPClient, } @@ -215,13 +215,13 @@ func (a *Client) RaftTranferLeadership(params *RaftTranferLeadershipParams, opts if err != nil { return nil, err } - success, ok := result.(*RaftTranferLeadershipOK) + success, ok := result.(*RaftTransferLeadershipOK) if ok { return success, nil } // unexpected success response // safeguard: normally, absent a default response, unknown success responses return an error above: so this is a codegen issue - msg := fmt.Sprintf("unexpected success response for raftTranferLeadership: API contract not enforced by server. Client expected to get an error, but got: %T", result) + msg := fmt.Sprintf("unexpected success response for raftTransferLeadership: API contract not enforced by server. Client expected to get an error, but got: %T", result) panic(msg) } diff --git a/controller/rest_client/raft/raft_tranfer_leadership_parameters.go b/controller/rest_client/raft/raft_transfer_leadership_parameters.go similarity index 51% rename from controller/rest_client/raft/raft_tranfer_leadership_parameters.go rename to controller/rest_client/raft/raft_transfer_leadership_parameters.go index f54fee563..45bc77594 100644 --- a/controller/rest_client/raft/raft_tranfer_leadership_parameters.go +++ b/controller/rest_client/raft/raft_transfer_leadership_parameters.go @@ -42,48 +42,48 @@ import ( "github.com/openziti/ziti/controller/rest_model" ) -// NewRaftTranferLeadershipParams creates a new RaftTranferLeadershipParams object, +// NewRaftTransferLeadershipParams creates a new RaftTransferLeadershipParams object, // with the default timeout for this client. // // Default values are not hydrated, since defaults are normally applied by the API server side. // // To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewRaftTranferLeadershipParams() *RaftTranferLeadershipParams { - return &RaftTranferLeadershipParams{ +func NewRaftTransferLeadershipParams() *RaftTransferLeadershipParams { + return &RaftTransferLeadershipParams{ timeout: cr.DefaultTimeout, } } -// NewRaftTranferLeadershipParamsWithTimeout creates a new RaftTranferLeadershipParams object +// NewRaftTransferLeadershipParamsWithTimeout creates a new RaftTransferLeadershipParams object // with the ability to set a timeout on a request. -func NewRaftTranferLeadershipParamsWithTimeout(timeout time.Duration) *RaftTranferLeadershipParams { - return &RaftTranferLeadershipParams{ +func NewRaftTransferLeadershipParamsWithTimeout(timeout time.Duration) *RaftTransferLeadershipParams { + return &RaftTransferLeadershipParams{ timeout: timeout, } } -// NewRaftTranferLeadershipParamsWithContext creates a new RaftTranferLeadershipParams object +// NewRaftTransferLeadershipParamsWithContext creates a new RaftTransferLeadershipParams object // with the ability to set a context for a request. -func NewRaftTranferLeadershipParamsWithContext(ctx context.Context) *RaftTranferLeadershipParams { - return &RaftTranferLeadershipParams{ +func NewRaftTransferLeadershipParamsWithContext(ctx context.Context) *RaftTransferLeadershipParams { + return &RaftTransferLeadershipParams{ Context: ctx, } } -// NewRaftTranferLeadershipParamsWithHTTPClient creates a new RaftTranferLeadershipParams object +// NewRaftTransferLeadershipParamsWithHTTPClient creates a new RaftTransferLeadershipParams object // with the ability to set a custom HTTPClient for a request. -func NewRaftTranferLeadershipParamsWithHTTPClient(client *http.Client) *RaftTranferLeadershipParams { - return &RaftTranferLeadershipParams{ +func NewRaftTransferLeadershipParamsWithHTTPClient(client *http.Client) *RaftTransferLeadershipParams { + return &RaftTransferLeadershipParams{ HTTPClient: client, } } -/* RaftTranferLeadershipParams contains all the parameters to send to the API endpoint - for the raft tranfer leadership operation. +/* RaftTransferLeadershipParams contains all the parameters to send to the API endpoint + for the raft transfer leadership operation. Typically these are written to a http.Request. */ -type RaftTranferLeadershipParams struct { +type RaftTransferLeadershipParams struct { /* Member. @@ -96,67 +96,67 @@ type RaftTranferLeadershipParams struct { HTTPClient *http.Client } -// WithDefaults hydrates default values in the raft tranfer leadership params (not the query body). +// WithDefaults hydrates default values in the raft transfer leadership params (not the query body). // // All values with no default are reset to their zero value. -func (o *RaftTranferLeadershipParams) WithDefaults() *RaftTranferLeadershipParams { +func (o *RaftTransferLeadershipParams) WithDefaults() *RaftTransferLeadershipParams { o.SetDefaults() return o } -// SetDefaults hydrates default values in the raft tranfer leadership params (not the query body). +// SetDefaults hydrates default values in the raft transfer leadership params (not the query body). // // All values with no default are reset to their zero value. -func (o *RaftTranferLeadershipParams) SetDefaults() { +func (o *RaftTransferLeadershipParams) SetDefaults() { // no default values defined for this parameter } -// WithTimeout adds the timeout to the raft tranfer leadership params -func (o *RaftTranferLeadershipParams) WithTimeout(timeout time.Duration) *RaftTranferLeadershipParams { +// WithTimeout adds the timeout to the raft transfer leadership params +func (o *RaftTransferLeadershipParams) WithTimeout(timeout time.Duration) *RaftTransferLeadershipParams { o.SetTimeout(timeout) return o } -// SetTimeout adds the timeout to the raft tranfer leadership params -func (o *RaftTranferLeadershipParams) SetTimeout(timeout time.Duration) { +// SetTimeout adds the timeout to the raft transfer leadership params +func (o *RaftTransferLeadershipParams) SetTimeout(timeout time.Duration) { o.timeout = timeout } -// WithContext adds the context to the raft tranfer leadership params -func (o *RaftTranferLeadershipParams) WithContext(ctx context.Context) *RaftTranferLeadershipParams { +// WithContext adds the context to the raft transfer leadership params +func (o *RaftTransferLeadershipParams) WithContext(ctx context.Context) *RaftTransferLeadershipParams { o.SetContext(ctx) return o } -// SetContext adds the context to the raft tranfer leadership params -func (o *RaftTranferLeadershipParams) SetContext(ctx context.Context) { +// SetContext adds the context to the raft transfer leadership params +func (o *RaftTransferLeadershipParams) SetContext(ctx context.Context) { o.Context = ctx } -// WithHTTPClient adds the HTTPClient to the raft tranfer leadership params -func (o *RaftTranferLeadershipParams) WithHTTPClient(client *http.Client) *RaftTranferLeadershipParams { +// WithHTTPClient adds the HTTPClient to the raft transfer leadership params +func (o *RaftTransferLeadershipParams) WithHTTPClient(client *http.Client) *RaftTransferLeadershipParams { o.SetHTTPClient(client) return o } -// SetHTTPClient adds the HTTPClient to the raft tranfer leadership params -func (o *RaftTranferLeadershipParams) SetHTTPClient(client *http.Client) { +// SetHTTPClient adds the HTTPClient to the raft transfer leadership params +func (o *RaftTransferLeadershipParams) SetHTTPClient(client *http.Client) { o.HTTPClient = client } -// WithMember adds the member to the raft tranfer leadership params -func (o *RaftTranferLeadershipParams) WithMember(member *rest_model.RaftTransferLeadership) *RaftTranferLeadershipParams { +// WithMember adds the member to the raft transfer leadership params +func (o *RaftTransferLeadershipParams) WithMember(member *rest_model.RaftTransferLeadership) *RaftTransferLeadershipParams { o.SetMember(member) return o } -// SetMember adds the member to the raft tranfer leadership params -func (o *RaftTranferLeadershipParams) SetMember(member *rest_model.RaftTransferLeadership) { +// SetMember adds the member to the raft transfer leadership params +func (o *RaftTransferLeadershipParams) SetMember(member *rest_model.RaftTransferLeadership) { o.Member = member } // WriteToRequest writes these params to a swagger request -func (o *RaftTranferLeadershipParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { +func (o *RaftTransferLeadershipParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { if err := r.SetTimeout(o.timeout); err != nil { return err diff --git a/controller/rest_client/raft/raft_tranfer_leadership_responses.go b/controller/rest_client/raft/raft_transfer_leadership_responses.go similarity index 50% rename from controller/rest_client/raft/raft_tranfer_leadership_responses.go rename to controller/rest_client/raft/raft_transfer_leadership_responses.go index f1a19b079..2dfaaeec1 100644 --- a/controller/rest_client/raft/raft_tranfer_leadership_responses.go +++ b/controller/rest_client/raft/raft_transfer_leadership_responses.go @@ -39,40 +39,40 @@ import ( "github.com/openziti/ziti/controller/rest_model" ) -// RaftTranferLeadershipReader is a Reader for the RaftTranferLeadership structure. -type RaftTranferLeadershipReader struct { +// RaftTransferLeadershipReader is a Reader for the RaftTransferLeadership structure. +type RaftTransferLeadershipReader struct { formats strfmt.Registry } // ReadResponse reads a server response into the received o. -func (o *RaftTranferLeadershipReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { +func (o *RaftTransferLeadershipReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { switch response.Code() { case 200: - result := NewRaftTranferLeadershipOK() + result := NewRaftTransferLeadershipOK() if err := result.readResponse(response, consumer, o.formats); err != nil { return nil, err } return result, nil case 401: - result := NewRaftTranferLeadershipUnauthorized() + result := NewRaftTransferLeadershipUnauthorized() if err := result.readResponse(response, consumer, o.formats); err != nil { return nil, err } return nil, result case 404: - result := NewRaftTranferLeadershipNotFound() + result := NewRaftTransferLeadershipNotFound() if err := result.readResponse(response, consumer, o.formats); err != nil { return nil, err } return nil, result case 429: - result := NewRaftTranferLeadershipTooManyRequests() + result := NewRaftTransferLeadershipTooManyRequests() if err := result.readResponse(response, consumer, o.formats); err != nil { return nil, err } return nil, result case 500: - result := NewRaftTranferLeadershipInternalServerError() + result := NewRaftTransferLeadershipInternalServerError() if err := result.readResponse(response, consumer, o.formats); err != nil { return nil, err } @@ -82,27 +82,27 @@ func (o *RaftTranferLeadershipReader) ReadResponse(response runtime.ClientRespon } } -// NewRaftTranferLeadershipOK creates a RaftTranferLeadershipOK with default headers values -func NewRaftTranferLeadershipOK() *RaftTranferLeadershipOK { - return &RaftTranferLeadershipOK{} +// NewRaftTransferLeadershipOK creates a RaftTransferLeadershipOK with default headers values +func NewRaftTransferLeadershipOK() *RaftTransferLeadershipOK { + return &RaftTransferLeadershipOK{} } -/* RaftTranferLeadershipOK describes a response with status code 200, with default header values. +/* RaftTransferLeadershipOK describes a response with status code 200, with default header values. Base empty response */ -type RaftTranferLeadershipOK struct { +type RaftTransferLeadershipOK struct { Payload *rest_model.Empty } -func (o *RaftTranferLeadershipOK) Error() string { - return fmt.Sprintf("[POST /raft/transfer-leadership][%d] raftTranferLeadershipOK %+v", 200, o.Payload) +func (o *RaftTransferLeadershipOK) Error() string { + return fmt.Sprintf("[POST /raft/transfer-leadership][%d] raftTransferLeadershipOK %+v", 200, o.Payload) } -func (o *RaftTranferLeadershipOK) GetPayload() *rest_model.Empty { +func (o *RaftTransferLeadershipOK) GetPayload() *rest_model.Empty { return o.Payload } -func (o *RaftTranferLeadershipOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { +func (o *RaftTransferLeadershipOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { o.Payload = new(rest_model.Empty) @@ -114,27 +114,27 @@ func (o *RaftTranferLeadershipOK) readResponse(response runtime.ClientResponse, return nil } -// NewRaftTranferLeadershipUnauthorized creates a RaftTranferLeadershipUnauthorized with default headers values -func NewRaftTranferLeadershipUnauthorized() *RaftTranferLeadershipUnauthorized { - return &RaftTranferLeadershipUnauthorized{} +// NewRaftTransferLeadershipUnauthorized creates a RaftTransferLeadershipUnauthorized with default headers values +func NewRaftTransferLeadershipUnauthorized() *RaftTransferLeadershipUnauthorized { + return &RaftTransferLeadershipUnauthorized{} } -/* RaftTranferLeadershipUnauthorized describes a response with status code 401, with default header values. +/* RaftTransferLeadershipUnauthorized describes a response with status code 401, with default header values. The currently supplied session does not have the correct access rights to request this resource */ -type RaftTranferLeadershipUnauthorized struct { +type RaftTransferLeadershipUnauthorized struct { Payload *rest_model.APIErrorEnvelope } -func (o *RaftTranferLeadershipUnauthorized) Error() string { - return fmt.Sprintf("[POST /raft/transfer-leadership][%d] raftTranferLeadershipUnauthorized %+v", 401, o.Payload) +func (o *RaftTransferLeadershipUnauthorized) Error() string { + return fmt.Sprintf("[POST /raft/transfer-leadership][%d] raftTransferLeadershipUnauthorized %+v", 401, o.Payload) } -func (o *RaftTranferLeadershipUnauthorized) GetPayload() *rest_model.APIErrorEnvelope { +func (o *RaftTransferLeadershipUnauthorized) GetPayload() *rest_model.APIErrorEnvelope { return o.Payload } -func (o *RaftTranferLeadershipUnauthorized) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { +func (o *RaftTransferLeadershipUnauthorized) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { o.Payload = new(rest_model.APIErrorEnvelope) @@ -146,27 +146,27 @@ func (o *RaftTranferLeadershipUnauthorized) readResponse(response runtime.Client return nil } -// NewRaftTranferLeadershipNotFound creates a RaftTranferLeadershipNotFound with default headers values -func NewRaftTranferLeadershipNotFound() *RaftTranferLeadershipNotFound { - return &RaftTranferLeadershipNotFound{} +// NewRaftTransferLeadershipNotFound creates a RaftTransferLeadershipNotFound with default headers values +func NewRaftTransferLeadershipNotFound() *RaftTransferLeadershipNotFound { + return &RaftTransferLeadershipNotFound{} } -/* RaftTranferLeadershipNotFound describes a response with status code 404, with default header values. +/* RaftTransferLeadershipNotFound describes a response with status code 404, with default header values. The requested resource does not exist */ -type RaftTranferLeadershipNotFound struct { +type RaftTransferLeadershipNotFound struct { Payload *rest_model.APIErrorEnvelope } -func (o *RaftTranferLeadershipNotFound) Error() string { - return fmt.Sprintf("[POST /raft/transfer-leadership][%d] raftTranferLeadershipNotFound %+v", 404, o.Payload) +func (o *RaftTransferLeadershipNotFound) Error() string { + return fmt.Sprintf("[POST /raft/transfer-leadership][%d] raftTransferLeadershipNotFound %+v", 404, o.Payload) } -func (o *RaftTranferLeadershipNotFound) GetPayload() *rest_model.APIErrorEnvelope { +func (o *RaftTransferLeadershipNotFound) GetPayload() *rest_model.APIErrorEnvelope { return o.Payload } -func (o *RaftTranferLeadershipNotFound) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { +func (o *RaftTransferLeadershipNotFound) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { o.Payload = new(rest_model.APIErrorEnvelope) @@ -178,27 +178,27 @@ func (o *RaftTranferLeadershipNotFound) readResponse(response runtime.ClientResp return nil } -// NewRaftTranferLeadershipTooManyRequests creates a RaftTranferLeadershipTooManyRequests with default headers values -func NewRaftTranferLeadershipTooManyRequests() *RaftTranferLeadershipTooManyRequests { - return &RaftTranferLeadershipTooManyRequests{} +// NewRaftTransferLeadershipTooManyRequests creates a RaftTransferLeadershipTooManyRequests with default headers values +func NewRaftTransferLeadershipTooManyRequests() *RaftTransferLeadershipTooManyRequests { + return &RaftTransferLeadershipTooManyRequests{} } -/* RaftTranferLeadershipTooManyRequests describes a response with status code 429, with default header values. +/* RaftTransferLeadershipTooManyRequests describes a response with status code 429, with default header values. The resource requested is rate limited and the rate limit has been exceeded */ -type RaftTranferLeadershipTooManyRequests struct { +type RaftTransferLeadershipTooManyRequests struct { Payload *rest_model.APIErrorEnvelope } -func (o *RaftTranferLeadershipTooManyRequests) Error() string { - return fmt.Sprintf("[POST /raft/transfer-leadership][%d] raftTranferLeadershipTooManyRequests %+v", 429, o.Payload) +func (o *RaftTransferLeadershipTooManyRequests) Error() string { + return fmt.Sprintf("[POST /raft/transfer-leadership][%d] raftTransferLeadershipTooManyRequests %+v", 429, o.Payload) } -func (o *RaftTranferLeadershipTooManyRequests) GetPayload() *rest_model.APIErrorEnvelope { +func (o *RaftTransferLeadershipTooManyRequests) GetPayload() *rest_model.APIErrorEnvelope { return o.Payload } -func (o *RaftTranferLeadershipTooManyRequests) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { +func (o *RaftTransferLeadershipTooManyRequests) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { o.Payload = new(rest_model.APIErrorEnvelope) @@ -210,27 +210,27 @@ func (o *RaftTranferLeadershipTooManyRequests) readResponse(response runtime.Cli return nil } -// NewRaftTranferLeadershipInternalServerError creates a RaftTranferLeadershipInternalServerError with default headers values -func NewRaftTranferLeadershipInternalServerError() *RaftTranferLeadershipInternalServerError { - return &RaftTranferLeadershipInternalServerError{} +// NewRaftTransferLeadershipInternalServerError creates a RaftTransferLeadershipInternalServerError with default headers values +func NewRaftTransferLeadershipInternalServerError() *RaftTransferLeadershipInternalServerError { + return &RaftTransferLeadershipInternalServerError{} } -/* RaftTranferLeadershipInternalServerError describes a response with status code 500, with default header values. +/* RaftTransferLeadershipInternalServerError describes a response with status code 500, with default header values. The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information */ -type RaftTranferLeadershipInternalServerError struct { +type RaftTransferLeadershipInternalServerError struct { Payload *rest_model.APIErrorEnvelope } -func (o *RaftTranferLeadershipInternalServerError) Error() string { - return fmt.Sprintf("[POST /raft/transfer-leadership][%d] raftTranferLeadershipInternalServerError %+v", 500, o.Payload) +func (o *RaftTransferLeadershipInternalServerError) Error() string { + return fmt.Sprintf("[POST /raft/transfer-leadership][%d] raftTransferLeadershipInternalServerError %+v", 500, o.Payload) } -func (o *RaftTranferLeadershipInternalServerError) GetPayload() *rest_model.APIErrorEnvelope { +func (o *RaftTransferLeadershipInternalServerError) GetPayload() *rest_model.APIErrorEnvelope { return o.Payload } -func (o *RaftTranferLeadershipInternalServerError) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { +func (o *RaftTransferLeadershipInternalServerError) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { o.Payload = new(rest_model.APIErrorEnvelope) diff --git a/controller/rest_server/configure_ziti_fabric.go b/controller/rest_server/configure_ziti_fabric.go index 134c883ec..b0f579105 100644 --- a/controller/rest_server/configure_ziti_fabric.go +++ b/controller/rest_server/configure_ziti_fabric.go @@ -234,9 +234,9 @@ func configureAPI(api *operations.ZitiFabricAPI) http.Handler { return middleware.NotImplemented("operation raft.RaftMemberRemove has not yet been implemented") }) } - if api.RaftRaftTranferLeadershipHandler == nil { - api.RaftRaftTranferLeadershipHandler = raft.RaftTranferLeadershipHandlerFunc(func(params raft.RaftTranferLeadershipParams) middleware.Responder { - return middleware.NotImplemented("operation raft.RaftTranferLeadership has not yet been implemented") + if api.RaftRaftTransferLeadershipHandler == nil { + api.RaftRaftTransferLeadershipHandler = raft.RaftTransferLeadershipHandlerFunc(func(params raft.RaftTransferLeadershipParams) middleware.Responder { + return middleware.NotImplemented("operation raft.RaftTransferLeadership has not yet been implemented") }) } if api.RouterUpdateRouterHandler == nil { diff --git a/controller/rest_server/embedded_spec.go b/controller/rest_server/embedded_spec.go index 9fad1fb08..517d985b5 100644 --- a/controller/rest_server/embedded_spec.go +++ b/controller/rest_server/embedded_spec.go @@ -556,7 +556,7 @@ func init() { "Raft" ], "summary": "Attempts to transfer leadership to a different member of the cluster", - "operationId": "raftTranferLeadership", + "operationId": "raftTransferLeadership", "parameters": [ { "description": "transfer operation parameters", @@ -4337,7 +4337,7 @@ func init() { "Raft" ], "summary": "Attempts to transfer leadership to a different member of the cluster", - "operationId": "raftTranferLeadership", + "operationId": "raftTransferLeadership", "parameters": [ { "description": "transfer operation parameters", diff --git a/controller/rest_server/operations/raft/raft_tranfer_leadership_responses.go b/controller/rest_server/operations/raft/raft_tranfer_leadership_responses.go deleted file mode 100644 index 744159fa5..000000000 --- a/controller/rest_server/operations/raft/raft_tranfer_leadership_responses.go +++ /dev/null @@ -1,258 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -// -// 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. -// -// __ __ _ -// \ \ / / (_) -// \ \ /\ / /_ _ _ __ _ __ _ _ __ __ _ -// \ \/ \/ / _` | '__| '_ \| | '_ \ / _` | -// \ /\ / (_| | | | | | | | | | | (_| | : This file is generated, do not edit it. -// \/ \/ \__,_|_| |_| |_|_|_| |_|\__, | -// __/ | -// |___/ - -package raft - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "net/http" - - "github.com/go-openapi/runtime" - - "github.com/openziti/ziti/controller/rest_model" -) - -// RaftTranferLeadershipOKCode is the HTTP code returned for type RaftTranferLeadershipOK -const RaftTranferLeadershipOKCode int = 200 - -/*RaftTranferLeadershipOK Base empty response - -swagger:response raftTranferLeadershipOK -*/ -type RaftTranferLeadershipOK struct { - - /* - In: Body - */ - Payload *rest_model.Empty `json:"body,omitempty"` -} - -// NewRaftTranferLeadershipOK creates RaftTranferLeadershipOK with default headers values -func NewRaftTranferLeadershipOK() *RaftTranferLeadershipOK { - - return &RaftTranferLeadershipOK{} -} - -// WithPayload adds the payload to the raft tranfer leadership o k response -func (o *RaftTranferLeadershipOK) WithPayload(payload *rest_model.Empty) *RaftTranferLeadershipOK { - o.Payload = payload - return o -} - -// SetPayload sets the payload to the raft tranfer leadership o k response -func (o *RaftTranferLeadershipOK) SetPayload(payload *rest_model.Empty) { - o.Payload = payload -} - -// WriteResponse to the client -func (o *RaftTranferLeadershipOK) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) { - - rw.WriteHeader(200) - if o.Payload != nil { - payload := o.Payload - if err := producer.Produce(rw, payload); err != nil { - panic(err) // let the recovery middleware deal with this - } - } -} - -// RaftTranferLeadershipUnauthorizedCode is the HTTP code returned for type RaftTranferLeadershipUnauthorized -const RaftTranferLeadershipUnauthorizedCode int = 401 - -/*RaftTranferLeadershipUnauthorized The currently supplied session does not have the correct access rights to request this resource - -swagger:response raftTranferLeadershipUnauthorized -*/ -type RaftTranferLeadershipUnauthorized struct { - - /* - In: Body - */ - Payload *rest_model.APIErrorEnvelope `json:"body,omitempty"` -} - -// NewRaftTranferLeadershipUnauthorized creates RaftTranferLeadershipUnauthorized with default headers values -func NewRaftTranferLeadershipUnauthorized() *RaftTranferLeadershipUnauthorized { - - return &RaftTranferLeadershipUnauthorized{} -} - -// WithPayload adds the payload to the raft tranfer leadership unauthorized response -func (o *RaftTranferLeadershipUnauthorized) WithPayload(payload *rest_model.APIErrorEnvelope) *RaftTranferLeadershipUnauthorized { - o.Payload = payload - return o -} - -// SetPayload sets the payload to the raft tranfer leadership unauthorized response -func (o *RaftTranferLeadershipUnauthorized) SetPayload(payload *rest_model.APIErrorEnvelope) { - o.Payload = payload -} - -// WriteResponse to the client -func (o *RaftTranferLeadershipUnauthorized) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) { - - rw.WriteHeader(401) - if o.Payload != nil { - payload := o.Payload - if err := producer.Produce(rw, payload); err != nil { - panic(err) // let the recovery middleware deal with this - } - } -} - -// RaftTranferLeadershipNotFoundCode is the HTTP code returned for type RaftTranferLeadershipNotFound -const RaftTranferLeadershipNotFoundCode int = 404 - -/*RaftTranferLeadershipNotFound The requested resource does not exist - -swagger:response raftTranferLeadershipNotFound -*/ -type RaftTranferLeadershipNotFound struct { - - /* - In: Body - */ - Payload *rest_model.APIErrorEnvelope `json:"body,omitempty"` -} - -// NewRaftTranferLeadershipNotFound creates RaftTranferLeadershipNotFound with default headers values -func NewRaftTranferLeadershipNotFound() *RaftTranferLeadershipNotFound { - - return &RaftTranferLeadershipNotFound{} -} - -// WithPayload adds the payload to the raft tranfer leadership not found response -func (o *RaftTranferLeadershipNotFound) WithPayload(payload *rest_model.APIErrorEnvelope) *RaftTranferLeadershipNotFound { - o.Payload = payload - return o -} - -// SetPayload sets the payload to the raft tranfer leadership not found response -func (o *RaftTranferLeadershipNotFound) SetPayload(payload *rest_model.APIErrorEnvelope) { - o.Payload = payload -} - -// WriteResponse to the client -func (o *RaftTranferLeadershipNotFound) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) { - - rw.WriteHeader(404) - if o.Payload != nil { - payload := o.Payload - if err := producer.Produce(rw, payload); err != nil { - panic(err) // let the recovery middleware deal with this - } - } -} - -// RaftTranferLeadershipTooManyRequestsCode is the HTTP code returned for type RaftTranferLeadershipTooManyRequests -const RaftTranferLeadershipTooManyRequestsCode int = 429 - -/*RaftTranferLeadershipTooManyRequests The resource requested is rate limited and the rate limit has been exceeded - -swagger:response raftTranferLeadershipTooManyRequests -*/ -type RaftTranferLeadershipTooManyRequests struct { - - /* - In: Body - */ - Payload *rest_model.APIErrorEnvelope `json:"body,omitempty"` -} - -// NewRaftTranferLeadershipTooManyRequests creates RaftTranferLeadershipTooManyRequests with default headers values -func NewRaftTranferLeadershipTooManyRequests() *RaftTranferLeadershipTooManyRequests { - - return &RaftTranferLeadershipTooManyRequests{} -} - -// WithPayload adds the payload to the raft tranfer leadership too many requests response -func (o *RaftTranferLeadershipTooManyRequests) WithPayload(payload *rest_model.APIErrorEnvelope) *RaftTranferLeadershipTooManyRequests { - o.Payload = payload - return o -} - -// SetPayload sets the payload to the raft tranfer leadership too many requests response -func (o *RaftTranferLeadershipTooManyRequests) SetPayload(payload *rest_model.APIErrorEnvelope) { - o.Payload = payload -} - -// WriteResponse to the client -func (o *RaftTranferLeadershipTooManyRequests) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) { - - rw.WriteHeader(429) - if o.Payload != nil { - payload := o.Payload - if err := producer.Produce(rw, payload); err != nil { - panic(err) // let the recovery middleware deal with this - } - } -} - -// RaftTranferLeadershipInternalServerErrorCode is the HTTP code returned for type RaftTranferLeadershipInternalServerError -const RaftTranferLeadershipInternalServerErrorCode int = 500 - -/*RaftTranferLeadershipInternalServerError The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information - -swagger:response raftTranferLeadershipInternalServerError -*/ -type RaftTranferLeadershipInternalServerError struct { - - /* - In: Body - */ - Payload *rest_model.APIErrorEnvelope `json:"body,omitempty"` -} - -// NewRaftTranferLeadershipInternalServerError creates RaftTranferLeadershipInternalServerError with default headers values -func NewRaftTranferLeadershipInternalServerError() *RaftTranferLeadershipInternalServerError { - - return &RaftTranferLeadershipInternalServerError{} -} - -// WithPayload adds the payload to the raft tranfer leadership internal server error response -func (o *RaftTranferLeadershipInternalServerError) WithPayload(payload *rest_model.APIErrorEnvelope) *RaftTranferLeadershipInternalServerError { - o.Payload = payload - return o -} - -// SetPayload sets the payload to the raft tranfer leadership internal server error response -func (o *RaftTranferLeadershipInternalServerError) SetPayload(payload *rest_model.APIErrorEnvelope) { - o.Payload = payload -} - -// WriteResponse to the client -func (o *RaftTranferLeadershipInternalServerError) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) { - - rw.WriteHeader(500) - if o.Payload != nil { - payload := o.Payload - if err := producer.Produce(rw, payload); err != nil { - panic(err) // let the recovery middleware deal with this - } - } -} diff --git a/controller/rest_server/operations/raft/raft_tranfer_leadership.go b/controller/rest_server/operations/raft/raft_transfer_leadership.go similarity index 62% rename from controller/rest_server/operations/raft/raft_tranfer_leadership.go rename to controller/rest_server/operations/raft/raft_transfer_leadership.go index ffd4240ba..4c3ee0a83 100644 --- a/controller/rest_server/operations/raft/raft_tranfer_leadership.go +++ b/controller/rest_server/operations/raft/raft_transfer_leadership.go @@ -35,42 +35,42 @@ import ( "github.com/go-openapi/runtime/middleware" ) -// RaftTranferLeadershipHandlerFunc turns a function with the right signature into a raft tranfer leadership handler -type RaftTranferLeadershipHandlerFunc func(RaftTranferLeadershipParams) middleware.Responder +// RaftTransferLeadershipHandlerFunc turns a function with the right signature into a raft transfer leadership handler +type RaftTransferLeadershipHandlerFunc func(RaftTransferLeadershipParams) middleware.Responder // Handle executing the request and returning a response -func (fn RaftTranferLeadershipHandlerFunc) Handle(params RaftTranferLeadershipParams) middleware.Responder { +func (fn RaftTransferLeadershipHandlerFunc) Handle(params RaftTransferLeadershipParams) middleware.Responder { return fn(params) } -// RaftTranferLeadershipHandler interface for that can handle valid raft tranfer leadership params -type RaftTranferLeadershipHandler interface { - Handle(RaftTranferLeadershipParams) middleware.Responder +// RaftTransferLeadershipHandler interface for that can handle valid raft transfer leadership params +type RaftTransferLeadershipHandler interface { + Handle(RaftTransferLeadershipParams) middleware.Responder } -// NewRaftTranferLeadership creates a new http.Handler for the raft tranfer leadership operation -func NewRaftTranferLeadership(ctx *middleware.Context, handler RaftTranferLeadershipHandler) *RaftTranferLeadership { - return &RaftTranferLeadership{Context: ctx, Handler: handler} +// NewRaftTransferLeadership creates a new http.Handler for the raft transfer leadership operation +func NewRaftTransferLeadership(ctx *middleware.Context, handler RaftTransferLeadershipHandler) *RaftTransferLeadership { + return &RaftTransferLeadership{Context: ctx, Handler: handler} } -/* RaftTranferLeadership swagger:route POST /raft/transfer-leadership Raft raftTranferLeadership +/* RaftTransferLeadership swagger:route POST /raft/transfer-leadership Raft raftTransferLeadership Attempts to transfer leadership to a different member of the cluster Attempts to transfer leadership to a different member of the cluster. Requires admin access. */ -type RaftTranferLeadership struct { +type RaftTransferLeadership struct { Context *middleware.Context - Handler RaftTranferLeadershipHandler + Handler RaftTransferLeadershipHandler } -func (o *RaftTranferLeadership) ServeHTTP(rw http.ResponseWriter, r *http.Request) { +func (o *RaftTransferLeadership) ServeHTTP(rw http.ResponseWriter, r *http.Request) { route, rCtx, _ := o.Context.RouteInfo(r) if rCtx != nil { *r = *rCtx } - var Params = NewRaftTranferLeadershipParams() + var Params = NewRaftTransferLeadershipParams() if err := o.Context.BindValidRequest(r, route, &Params); err != nil { // bind params o.Context.Respond(rw, r, route.Produces, route, err) return diff --git a/controller/rest_server/operations/raft/raft_tranfer_leadership_parameters.go b/controller/rest_server/operations/raft/raft_transfer_leadership_parameters.go similarity index 83% rename from controller/rest_server/operations/raft/raft_tranfer_leadership_parameters.go rename to controller/rest_server/operations/raft/raft_transfer_leadership_parameters.go index e700272f4..a49ca1448 100644 --- a/controller/rest_server/operations/raft/raft_tranfer_leadership_parameters.go +++ b/controller/rest_server/operations/raft/raft_transfer_leadership_parameters.go @@ -42,19 +42,19 @@ import ( "github.com/openziti/ziti/controller/rest_model" ) -// NewRaftTranferLeadershipParams creates a new RaftTranferLeadershipParams object +// NewRaftTransferLeadershipParams creates a new RaftTransferLeadershipParams object // // There are no default values defined in the spec. -func NewRaftTranferLeadershipParams() RaftTranferLeadershipParams { +func NewRaftTransferLeadershipParams() RaftTransferLeadershipParams { - return RaftTranferLeadershipParams{} + return RaftTransferLeadershipParams{} } -// RaftTranferLeadershipParams contains all the bound params for the raft tranfer leadership operation +// RaftTransferLeadershipParams contains all the bound params for the raft transfer leadership operation // typically these are obtained from a http.Request // -// swagger:parameters raftTranferLeadership -type RaftTranferLeadershipParams struct { +// swagger:parameters raftTransferLeadership +type RaftTransferLeadershipParams struct { // HTTP Request Object HTTPRequest *http.Request `json:"-"` @@ -69,8 +69,8 @@ type RaftTranferLeadershipParams struct { // BindRequest both binds and validates a request, it assumes that complex things implement a Validatable(strfmt.Registry) error interface // for simple values it will use straight method calls. // -// To ensure default values, the struct must have been initialized with NewRaftTranferLeadershipParams() beforehand. -func (o *RaftTranferLeadershipParams) BindRequest(r *http.Request, route *middleware.MatchedRoute) error { +// To ensure default values, the struct must have been initialized with NewRaftTransferLeadershipParams() beforehand. +func (o *RaftTransferLeadershipParams) BindRequest(r *http.Request, route *middleware.MatchedRoute) error { var res []error o.HTTPRequest = r diff --git a/controller/rest_server/operations/raft/raft_transfer_leadership_responses.go b/controller/rest_server/operations/raft/raft_transfer_leadership_responses.go new file mode 100644 index 000000000..971a6c55e --- /dev/null +++ b/controller/rest_server/operations/raft/raft_transfer_leadership_responses.go @@ -0,0 +1,258 @@ +// Code generated by go-swagger; DO NOT EDIT. + +// +// 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. +// +// __ __ _ +// \ \ / / (_) +// \ \ /\ / /_ _ _ __ _ __ _ _ __ __ _ +// \ \/ \/ / _` | '__| '_ \| | '_ \ / _` | +// \ /\ / (_| | | | | | | | | | | (_| | : This file is generated, do not edit it. +// \/ \/ \__,_|_| |_| |_|_|_| |_|\__, | +// __/ | +// |___/ + +package raft + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "net/http" + + "github.com/go-openapi/runtime" + + "github.com/openziti/ziti/controller/rest_model" +) + +// RaftTransferLeadershipOKCode is the HTTP code returned for type RaftTransferLeadershipOK +const RaftTransferLeadershipOKCode int = 200 + +/*RaftTransferLeadershipOK Base empty response + +swagger:response raftTransferLeadershipOK +*/ +type RaftTransferLeadershipOK struct { + + /* + In: Body + */ + Payload *rest_model.Empty `json:"body,omitempty"` +} + +// NewRaftTransferLeadershipOK creates RaftTransferLeadershipOK with default headers values +func NewRaftTransferLeadershipOK() *RaftTransferLeadershipOK { + + return &RaftTransferLeadershipOK{} +} + +// WithPayload adds the payload to the raft transfer leadership o k response +func (o *RaftTransferLeadershipOK) WithPayload(payload *rest_model.Empty) *RaftTransferLeadershipOK { + o.Payload = payload + return o +} + +// SetPayload sets the payload to the raft transfer leadership o k response +func (o *RaftTransferLeadershipOK) SetPayload(payload *rest_model.Empty) { + o.Payload = payload +} + +// WriteResponse to the client +func (o *RaftTransferLeadershipOK) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) { + + rw.WriteHeader(200) + if o.Payload != nil { + payload := o.Payload + if err := producer.Produce(rw, payload); err != nil { + panic(err) // let the recovery middleware deal with this + } + } +} + +// RaftTransferLeadershipUnauthorizedCode is the HTTP code returned for type RaftTransferLeadershipUnauthorized +const RaftTransferLeadershipUnauthorizedCode int = 401 + +/*RaftTransferLeadershipUnauthorized The currently supplied session does not have the correct access rights to request this resource + +swagger:response raftTransferLeadershipUnauthorized +*/ +type RaftTransferLeadershipUnauthorized struct { + + /* + In: Body + */ + Payload *rest_model.APIErrorEnvelope `json:"body,omitempty"` +} + +// NewRaftTransferLeadershipUnauthorized creates RaftTransferLeadershipUnauthorized with default headers values +func NewRaftTransferLeadershipUnauthorized() *RaftTransferLeadershipUnauthorized { + + return &RaftTransferLeadershipUnauthorized{} +} + +// WithPayload adds the payload to the raft transfer leadership unauthorized response +func (o *RaftTransferLeadershipUnauthorized) WithPayload(payload *rest_model.APIErrorEnvelope) *RaftTransferLeadershipUnauthorized { + o.Payload = payload + return o +} + +// SetPayload sets the payload to the raft transfer leadership unauthorized response +func (o *RaftTransferLeadershipUnauthorized) SetPayload(payload *rest_model.APIErrorEnvelope) { + o.Payload = payload +} + +// WriteResponse to the client +func (o *RaftTransferLeadershipUnauthorized) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) { + + rw.WriteHeader(401) + if o.Payload != nil { + payload := o.Payload + if err := producer.Produce(rw, payload); err != nil { + panic(err) // let the recovery middleware deal with this + } + } +} + +// RaftTransferLeadershipNotFoundCode is the HTTP code returned for type RaftTransferLeadershipNotFound +const RaftTransferLeadershipNotFoundCode int = 404 + +/*RaftTransferLeadershipNotFound The requested resource does not exist + +swagger:response raftTransferLeadershipNotFound +*/ +type RaftTransferLeadershipNotFound struct { + + /* + In: Body + */ + Payload *rest_model.APIErrorEnvelope `json:"body,omitempty"` +} + +// NewRaftTransferLeadershipNotFound creates RaftTransferLeadershipNotFound with default headers values +func NewRaftTransferLeadershipNotFound() *RaftTransferLeadershipNotFound { + + return &RaftTransferLeadershipNotFound{} +} + +// WithPayload adds the payload to the raft transfer leadership not found response +func (o *RaftTransferLeadershipNotFound) WithPayload(payload *rest_model.APIErrorEnvelope) *RaftTransferLeadershipNotFound { + o.Payload = payload + return o +} + +// SetPayload sets the payload to the raft transfer leadership not found response +func (o *RaftTransferLeadershipNotFound) SetPayload(payload *rest_model.APIErrorEnvelope) { + o.Payload = payload +} + +// WriteResponse to the client +func (o *RaftTransferLeadershipNotFound) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) { + + rw.WriteHeader(404) + if o.Payload != nil { + payload := o.Payload + if err := producer.Produce(rw, payload); err != nil { + panic(err) // let the recovery middleware deal with this + } + } +} + +// RaftTransferLeadershipTooManyRequestsCode is the HTTP code returned for type RaftTransferLeadershipTooManyRequests +const RaftTransferLeadershipTooManyRequestsCode int = 429 + +/*RaftTransferLeadershipTooManyRequests The resource requested is rate limited and the rate limit has been exceeded + +swagger:response raftTransferLeadershipTooManyRequests +*/ +type RaftTransferLeadershipTooManyRequests struct { + + /* + In: Body + */ + Payload *rest_model.APIErrorEnvelope `json:"body,omitempty"` +} + +// NewRaftTransferLeadershipTooManyRequests creates RaftTransferLeadershipTooManyRequests with default headers values +func NewRaftTransferLeadershipTooManyRequests() *RaftTransferLeadershipTooManyRequests { + + return &RaftTransferLeadershipTooManyRequests{} +} + +// WithPayload adds the payload to the raft transfer leadership too many requests response +func (o *RaftTransferLeadershipTooManyRequests) WithPayload(payload *rest_model.APIErrorEnvelope) *RaftTransferLeadershipTooManyRequests { + o.Payload = payload + return o +} + +// SetPayload sets the payload to the raft transfer leadership too many requests response +func (o *RaftTransferLeadershipTooManyRequests) SetPayload(payload *rest_model.APIErrorEnvelope) { + o.Payload = payload +} + +// WriteResponse to the client +func (o *RaftTransferLeadershipTooManyRequests) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) { + + rw.WriteHeader(429) + if o.Payload != nil { + payload := o.Payload + if err := producer.Produce(rw, payload); err != nil { + panic(err) // let the recovery middleware deal with this + } + } +} + +// RaftTransferLeadershipInternalServerErrorCode is the HTTP code returned for type RaftTransferLeadershipInternalServerError +const RaftTransferLeadershipInternalServerErrorCode int = 500 + +/*RaftTransferLeadershipInternalServerError The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information + +swagger:response raftTransferLeadershipInternalServerError +*/ +type RaftTransferLeadershipInternalServerError struct { + + /* + In: Body + */ + Payload *rest_model.APIErrorEnvelope `json:"body,omitempty"` +} + +// NewRaftTransferLeadershipInternalServerError creates RaftTransferLeadershipInternalServerError with default headers values +func NewRaftTransferLeadershipInternalServerError() *RaftTransferLeadershipInternalServerError { + + return &RaftTransferLeadershipInternalServerError{} +} + +// WithPayload adds the payload to the raft transfer leadership internal server error response +func (o *RaftTransferLeadershipInternalServerError) WithPayload(payload *rest_model.APIErrorEnvelope) *RaftTransferLeadershipInternalServerError { + o.Payload = payload + return o +} + +// SetPayload sets the payload to the raft transfer leadership internal server error response +func (o *RaftTransferLeadershipInternalServerError) SetPayload(payload *rest_model.APIErrorEnvelope) { + o.Payload = payload +} + +// WriteResponse to the client +func (o *RaftTransferLeadershipInternalServerError) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) { + + rw.WriteHeader(500) + if o.Payload != nil { + payload := o.Payload + if err := producer.Produce(rw, payload); err != nil { + panic(err) // let the recovery middleware deal with this + } + } +} diff --git a/controller/rest_server/operations/raft/raft_tranfer_leadership_urlbuilder.go b/controller/rest_server/operations/raft/raft_transfer_leadership_urlbuilder.go similarity index 79% rename from controller/rest_server/operations/raft/raft_tranfer_leadership_urlbuilder.go rename to controller/rest_server/operations/raft/raft_transfer_leadership_urlbuilder.go index 16e8f53bf..09f767856 100644 --- a/controller/rest_server/operations/raft/raft_tranfer_leadership_urlbuilder.go +++ b/controller/rest_server/operations/raft/raft_transfer_leadership_urlbuilder.go @@ -35,15 +35,15 @@ import ( golangswaggerpaths "path" ) -// RaftTranferLeadershipURL generates an URL for the raft tranfer leadership operation -type RaftTranferLeadershipURL struct { +// RaftTransferLeadershipURL generates an URL for the raft transfer leadership operation +type RaftTransferLeadershipURL struct { _basePath string } // WithBasePath sets the base path for this url builder, only required when it's different from the // base path specified in the swagger spec. // When the value of the base path is an empty string -func (o *RaftTranferLeadershipURL) WithBasePath(bp string) *RaftTranferLeadershipURL { +func (o *RaftTransferLeadershipURL) WithBasePath(bp string) *RaftTransferLeadershipURL { o.SetBasePath(bp) return o } @@ -51,12 +51,12 @@ func (o *RaftTranferLeadershipURL) WithBasePath(bp string) *RaftTranferLeadershi // SetBasePath sets the base path for this url builder, only required when it's different from the // base path specified in the swagger spec. // When the value of the base path is an empty string -func (o *RaftTranferLeadershipURL) SetBasePath(bp string) { +func (o *RaftTransferLeadershipURL) SetBasePath(bp string) { o._basePath = bp } // Build a url path and query string -func (o *RaftTranferLeadershipURL) Build() (*url.URL, error) { +func (o *RaftTransferLeadershipURL) Build() (*url.URL, error) { var _result url.URL var _path = "/raft/transfer-leadership" @@ -71,7 +71,7 @@ func (o *RaftTranferLeadershipURL) Build() (*url.URL, error) { } // Must is a helper function to panic when the url builder returns an error -func (o *RaftTranferLeadershipURL) Must(u *url.URL, err error) *url.URL { +func (o *RaftTransferLeadershipURL) Must(u *url.URL, err error) *url.URL { if err != nil { panic(err) } @@ -82,17 +82,17 @@ func (o *RaftTranferLeadershipURL) Must(u *url.URL, err error) *url.URL { } // String returns the string representation of the path with query string -func (o *RaftTranferLeadershipURL) String() string { +func (o *RaftTransferLeadershipURL) String() string { return o.Must(o.Build()).String() } // BuildFull builds a full url with scheme, host, path and query string -func (o *RaftTranferLeadershipURL) BuildFull(scheme, host string) (*url.URL, error) { +func (o *RaftTransferLeadershipURL) BuildFull(scheme, host string) (*url.URL, error) { if scheme == "" { - return nil, errors.New("scheme is required for a full url on RaftTranferLeadershipURL") + return nil, errors.New("scheme is required for a full url on RaftTransferLeadershipURL") } if host == "" { - return nil, errors.New("host is required for a full url on RaftTranferLeadershipURL") + return nil, errors.New("host is required for a full url on RaftTransferLeadershipURL") } base, err := o.Build() @@ -106,6 +106,6 @@ func (o *RaftTranferLeadershipURL) BuildFull(scheme, host string) (*url.URL, err } // StringFull returns the string representation of a complete url -func (o *RaftTranferLeadershipURL) StringFull(scheme, host string) string { +func (o *RaftTransferLeadershipURL) StringFull(scheme, host string) string { return o.Must(o.BuildFull(scheme, host)).String() } diff --git a/controller/rest_server/operations/ziti_fabric_api.go b/controller/rest_server/operations/ziti_fabric_api.go index ea2266037..7b5bef14f 100644 --- a/controller/rest_server/operations/ziti_fabric_api.go +++ b/controller/rest_server/operations/ziti_fabric_api.go @@ -174,8 +174,8 @@ func NewZitiFabricAPI(spec *loads.Document) *ZitiFabricAPI { RaftRaftMemberRemoveHandler: raft.RaftMemberRemoveHandlerFunc(func(params raft.RaftMemberRemoveParams) middleware.Responder { return middleware.NotImplemented("operation raft.RaftMemberRemove has not yet been implemented") }), - RaftRaftTranferLeadershipHandler: raft.RaftTranferLeadershipHandlerFunc(func(params raft.RaftTranferLeadershipParams) middleware.Responder { - return middleware.NotImplemented("operation raft.RaftTranferLeadership has not yet been implemented") + RaftRaftTransferLeadershipHandler: raft.RaftTransferLeadershipHandlerFunc(func(params raft.RaftTransferLeadershipParams) middleware.Responder { + return middleware.NotImplemented("operation raft.RaftTransferLeadership has not yet been implemented") }), RouterUpdateRouterHandler: router.UpdateRouterHandlerFunc(func(params router.UpdateRouterParams) middleware.Responder { return middleware.NotImplemented("operation router.UpdateRouter has not yet been implemented") @@ -288,8 +288,8 @@ type ZitiFabricAPI struct { RaftRaftMemberAddHandler raft.RaftMemberAddHandler // RaftRaftMemberRemoveHandler sets the operation handler for the raft member remove operation RaftRaftMemberRemoveHandler raft.RaftMemberRemoveHandler - // RaftRaftTranferLeadershipHandler sets the operation handler for the raft tranfer leadership operation - RaftRaftTranferLeadershipHandler raft.RaftTranferLeadershipHandler + // RaftRaftTransferLeadershipHandler sets the operation handler for the raft transfer leadership operation + RaftRaftTransferLeadershipHandler raft.RaftTransferLeadershipHandler // RouterUpdateRouterHandler sets the operation handler for the update router operation RouterUpdateRouterHandler router.UpdateRouterHandler // ServiceUpdateServiceHandler sets the operation handler for the update service operation @@ -472,8 +472,8 @@ func (o *ZitiFabricAPI) Validate() error { if o.RaftRaftMemberRemoveHandler == nil { unregistered = append(unregistered, "raft.RaftMemberRemoveHandler") } - if o.RaftRaftTranferLeadershipHandler == nil { - unregistered = append(unregistered, "raft.RaftTranferLeadershipHandler") + if o.RaftRaftTransferLeadershipHandler == nil { + unregistered = append(unregistered, "raft.RaftTransferLeadershipHandler") } if o.RouterUpdateRouterHandler == nil { unregistered = append(unregistered, "router.UpdateRouterHandler") @@ -707,7 +707,7 @@ func (o *ZitiFabricAPI) initHandlerCache() { if o.handlers["POST"] == nil { o.handlers["POST"] = make(map[string]http.Handler) } - o.handlers["POST"]["/raft/transfer-leadership"] = raft.NewRaftTranferLeadership(o.context, o.RaftRaftTranferLeadershipHandler) + o.handlers["POST"]["/raft/transfer-leadership"] = raft.NewRaftTransferLeadership(o.context, o.RaftRaftTransferLeadershipHandler) if o.handlers["PUT"] == nil { o.handlers["PUT"] = make(map[string]http.Handler) } diff --git a/controller/specs/swagger.yml b/controller/specs/swagger.yml index 53ef15c41..84fff9e76 100644 --- a/controller/specs/swagger.yml +++ b/controller/specs/swagger.yml @@ -817,7 +817,7 @@ paths: description: Attempts to transfer leadership to a different member of the cluster. Requires admin access. tags: - Raft - operationId: raftTranferLeadership + operationId: raftTransferLeadership parameters: - name: member in: body diff --git a/controller/xt_weighted/impl.go b/controller/xt_weighted/impl.go index cf54ecd28..b7845124a 100644 --- a/controller/xt_weighted/impl.go +++ b/controller/xt_weighted/impl.go @@ -26,7 +26,7 @@ import ( /** The weighted strategy does random selection of available strategies in proportion to the terminator costs. So if a -given terminator has twice the fully evaluated cost as another terminator it should idealy be selected roughly half +given terminator has twice the fully evaluated cost as another terminator it should ideally be selected roughly half as often. */ diff --git a/doc/transwarp_b1/transwarp_b1.md b/doc/transwarp_b1/transwarp_b1.md index cf62a2064..c9806625e 100644 --- a/doc/transwarp_b1/transwarp_b1.md +++ b/doc/transwarp_b1/transwarp_b1.md @@ -399,7 +399,7 @@ From there, you can zoom in on the dataset in detail: ### Comparing Against TCP -We can run the scenerio again, swapping in the `tcp` protocol instead of the `westworld3` protocol by invoking the `dilithium tunnel server` and `client` like this: +We can run the scenario again, swapping in the `tcp` protocol instead of the `westworld3` protocol by invoking the `dilithium tunnel server` and `client` like this: ``` [fedora@ip-10-0-0-217 ~]$ fablab/bin/dilithium tunnel server 0.0.0.0:6262 127.0.0.1:22 -p tcp diff --git a/etc/ctrl.with.edge.yml b/etc/ctrl.with.edge.yml index bbfa0ab21..000845a79 100644 --- a/etc/ctrl.with.edge.yml +++ b/etc/ctrl.with.edge.yml @@ -108,7 +108,7 @@ healthChecks: # 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 allows configurating the rate limiter for auth attempts + # This section allows configuring the rate limiter for auth attempts authRateLimiter: # if disabled, no auth rate limiting with be enforced enabled: true diff --git a/ziti/cmd/fabric/raft.go b/ziti/cmd/fabric/raft.go index 330ced501..e7312bdeb 100644 --- a/ziti/cmd/fabric/raft.go +++ b/ziti/cmd/fabric/raft.go @@ -203,7 +203,7 @@ func (self *raftTransferLeadershipAction) run(cmd *cobra.Command, args []string) newLeader = args[0] } - _, err = client.Raft.RaftTranferLeadership(&raft.RaftTranferLeadershipParams{ + _, err = client.Raft.RaftTransferLeadership(&raft.RaftTransferLeadershipParams{ Context: context.Background(), Member: &rest_model.RaftTransferLeadership{ NewLeaderID: newLeader, From 74d68b958a78ea5338e6876851b45ee00985a808 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Thu, 30 May 2024 12:31:43 -0400 Subject: [PATCH 72/72] Update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b1073953..d1d5d751e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ * Linux and Docker deployments log formats no longer default to the simplified format option and now use logging library defaults: `json` for non-interactive, `text` for interactive. +NOTE: This release is the first since 1.0.0 to be marked promoted from pre-release. Be sure to check the release notes + for the rest of the post-1.0.0 releases to get the full set of changes. + ## Stick Terminator Strategy This release introduces a new terminator selection strategy `sticky`. On every dial it will return a token to the