Skip to content

Commit 61ce690

Browse files
authored
Merge pull request #3271 from openziti/update-deps-and-changelog
Update deps and changelog
2 parents 04048e4 + 7a7d70f commit 61ce690

File tree

21 files changed

+787
-147
lines changed

21 files changed

+787
-147
lines changed

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
# Release 1.6.9
2+
3+
## What's New
4+
5+
This release contains a fix for the goroutine pooling functionality, which prevents a
6+
race-condition where the pool can drop to 0 workers, when configured with 1 minimum worker. Unlike
7+
when the pool is configured for 0 minimum workers, the pool does not recover from this state.
8+
9+
It also contains a fix for ER/T connections which may not fully close, causing circuits to build up.
10+
11+
## Component Updates and Bug Fixes
12+
13+
* github.com/openziti/agent: [v1.0.31 -> v1.0.32](https://github.com/openziti/agent/compare/v1.0.31...v1.0.32)
14+
* github.com/openziti/channel/v4: [v4.2.28 -> v4.2.35](https://github.com/openziti/channel/compare/v4.2.28...v4.2.35)
15+
* github.com/openziti/foundation/v2: [v2.0.72 -> v2.0.77](https://github.com/openziti/foundation/compare/v2.0.72...v2.0.77)
16+
* [Issue #455](https://github.com/openziti/foundation/issues/455) - Correctly close goroutine pool when external close is signaled
17+
* [Issue #452](https://github.com/openziti/foundation/issues/452) - Goroutine pool with a min worker count of 1 can drop to 0 workers due to race condition
18+
19+
* github.com/openziti/identity: [v1.0.111 -> v1.0.116](https://github.com/openziti/identity/compare/v1.0.111...v1.0.116)
20+
* [Issue #68](https://github.com/openziti/identity/issues/68) - Shutdown file watcher when stopping identity watcher
21+
22+
* github.com/openziti/runzmd: [v1.0.80 -> v1.0.82](https://github.com/openziti/runzmd/compare/v1.0.80...v1.0.82)
23+
* github.com/openziti/sdk-golang: [v1.2.3 -> v1.2.4](https://github.com/openziti/sdk-golang/compare/v1.2.3...v1.2.4)
24+
* [Issue #800](https://github.com/openziti/sdk-golang/issues/800) - Tidy create service session logging
25+
26+
* github.com/openziti/storage: [v0.4.26 -> v0.4.28](https://github.com/openziti/storage/compare/v0.4.26...v0.4.28)
27+
* github.com/openziti/transport/v2: [v2.0.188 -> v2.0.193](https://github.com/openziti/transport/compare/v2.0.188...v2.0.193)
28+
* github.com/openziti/ziti: [v1.6.8 -> v1.6.9](https://github.com/openziti/ziti/compare/v1.6.8...v1.6.9)
29+
* [Issue #3261](https://github.com/openziti/ziti/issues/3261) - ER/T dialed xgress connections may only half-close when peer is fully closed
30+
131
# Release 1.6.8
232

333
## What's New

controller/controller.go

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ import (
2424
"encoding/json"
2525
stderr "errors"
2626
"fmt"
27+
"math/big"
28+
"os"
29+
"strings"
30+
"sync"
31+
"sync/atomic"
32+
33+
gosundheit "github.com/AppsFlyer/go-sundheit"
2734
"github.com/michaelquigley/pfxlog"
2835
"github.com/openziti/channel/v4"
2936
"github.com/openziti/channel/v4/protobufs"
@@ -62,11 +69,6 @@ import (
6269
"github.com/pkg/errors"
6370
"github.com/sirupsen/logrus"
6471
"github.com/teris-io/shortid"
65-
"math/big"
66-
"os"
67-
"strings"
68-
"sync"
69-
"sync/atomic"
7072
)
7173

7274
type Controller struct {
@@ -97,6 +99,7 @@ type Controller struct {
9799
apiDataOnce sync.Once
98100

99101
xwebInitialized concurrency.InitState
102+
healthChecker gosundheit.Health
100103
}
101104

102105
func (c *Controller) GetPeerSigners() []*x509.Certificate {
@@ -345,6 +348,7 @@ func (c *Controller) initWeb() {
345348
if err != nil {
346349
logrus.WithError(err).Fatalf("failed to create health checker")
347350
}
351+
c.healthChecker = healthChecker
348352

349353
if err = c.xweb.GetRegistry().Add(webapis.NewControllerHealthCheckApiFactory(c.env, healthChecker)); err != nil {
350354
logrus.WithError(err).Fatalf("failed to create health checks api factory")
@@ -531,6 +535,15 @@ func (c *Controller) Shutdown() {
531535
pfxlog.Logger().WithError(err).Error("failed to shutdown raft")
532536
}
533537
}
538+
539+
c.config.Id.StopWatchingFiles()
540+
if c.config.Edge.Enrollment.SigningCert != nil {
541+
c.config.Edge.Enrollment.SigningCert.StopWatchingFiles()
542+
}
543+
544+
if c.healthChecker != nil {
545+
c.healthChecker.DeregisterAll()
546+
}
534547
}
535548
}
536549

controller/handler_peer_ctrl/command.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
package handler_peer_ctrl
1818

1919
import (
20+
"time"
21+
2022
"github.com/michaelquigley/pfxlog"
2123
"github.com/openziti/channel/v4"
2224
"github.com/openziti/foundation/v2/goroutines"
@@ -26,7 +28,6 @@ import (
2628
"github.com/openziti/ziti/controller/raft"
2729
"github.com/pkg/errors"
2830
"github.com/sirupsen/logrus"
29-
"time"
3031
)
3132

3233
func newCommandHandler(controller *raft.Controller) channel.TypedReceiveHandler {
@@ -39,6 +40,7 @@ func newCommandHandler(controller *raft.Controller) channel.TypedReceiveHandler
3940
PanicHandler: func(err interface{}) {
4041
pfxlog.Logger().WithField(logrus.ErrorKey, err).Error("panic during command processing")
4142
},
43+
WorkerFunction: commandHandlerWorker,
4244
}
4345
metrics.ConfigureGoroutinesPoolMetrics(&poolConfig, controller.GetMetricsRegistry(), "command_handler")
4446
pool, err := goroutines.NewPool(poolConfig)
@@ -51,6 +53,10 @@ func newCommandHandler(controller *raft.Controller) channel.TypedReceiveHandler
5153
}
5254
}
5355

56+
func commandHandlerWorker(_ uint32, f func()) {
57+
f()
58+
}
59+
5460
type commandHandler struct {
5561
controller *raft.Controller
5662
pool goroutines.Pool

controller/model/api_session_heartbeats.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,18 @@
1717
package model
1818

1919
import (
20+
"sync/atomic"
21+
"time"
22+
2023
"github.com/michaelquigley/pfxlog"
2124
"github.com/openziti/storage/boltz"
2225
cmap "github.com/orcaman/concurrent-map/v2"
23-
"sync/atomic"
24-
"time"
2526
)
2627

2728
type HeartbeatCollector struct {
2829
apiSessionLastAccessedAtMap cmap.ConcurrentMap[string, *HeartbeatStatus]
2930
updateInterval time.Duration
30-
closeNotify chan struct{}
31+
closeNotify <-chan struct{}
3132
isFlushing atomic.Bool
3233
flushAction func(beats []*Heartbeat)
3334
batchSize int
@@ -48,7 +49,7 @@ func NewHeartbeatCollector(env Env, batchSize int, updateInterval time.Duration,
4849
updateInterval: updateInterval,
4950
batchSize: batchSize,
5051
flushAction: action,
51-
closeNotify: make(chan struct{}),
52+
closeNotify: env.GetCloseNotifyChannel(),
5253
}
5354

5455
env.GetStores().ApiSession.AddEntityIdListener(collector.Remove, boltz.EntityDeleted)
@@ -99,11 +100,6 @@ func (self *HeartbeatCollector) run() {
99100
}
100101
}
101102

102-
func (self *HeartbeatCollector) Stop() {
103-
close(self.closeNotify)
104-
105-
}
106-
107103
func (self *HeartbeatCollector) flush() {
108104
if self.isFlushing.CompareAndSwap(false, true) {
109105
defer self.isFlushing.CompareAndSwap(true, false)

controller/network/network.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -982,9 +982,18 @@ func (network *Network) Run() {
982982
func (network *Network) watchdog() {
983983
watchdogInterval := 2 * time.Duration(network.options.CycleSeconds) * time.Second
984984
consecutiveFails := 0
985+
986+
watchDogTicker := time.NewTicker(watchdogInterval)
987+
defer watchDogTicker.Stop()
988+
985989
for {
986990
// check every 2x cycle seconds
987-
time.Sleep(watchdogInterval)
991+
select {
992+
case <-watchDogTicker.C:
993+
case <-network.closeNotify:
994+
return
995+
}
996+
988997
select {
989998
case <-network.watchdogCh:
990999
consecutiveFails = 0

controller/server/controller.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ package server
1818

1919
import (
2020
"fmt"
21+
"os"
22+
"sync"
23+
"time"
24+
2125
"github.com/michaelquigley/pfxlog"
2226
"github.com/openziti/channel/v4"
2327
"github.com/openziti/storage/boltz"
@@ -30,9 +34,6 @@ import (
3034
_ "github.com/openziti/ziti/controller/internal/routes"
3135
"github.com/openziti/ziti/controller/model"
3236
sync2 "github.com/openziti/ziti/controller/sync_strats"
33-
"os"
34-
"sync"
35-
"time"
3637
)
3738

3839
type Controller struct {
@@ -279,8 +280,6 @@ func (c *Controller) Shutdown() {
279280

280281
c.AppEnv.Broker.Stop()
281282

282-
c.AppEnv.GetManagers().ApiSession.HeartbeatCollector.Stop()
283-
284283
pfxlog.Logger().Info("edge controller: stopped")
285284

286285
pfxlog.Logger().Info("fabric controller: shutting down...")

go.mod

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -56,19 +56,19 @@ require (
5656
github.com/miekg/dns v1.1.68
5757
github.com/mitchellh/mapstructure v1.5.0
5858
github.com/natefinch/lumberjack v2.0.0+incompatible
59-
github.com/openziti/agent v1.0.31
60-
github.com/openziti/channel/v4 v4.2.28
59+
github.com/openziti/agent v1.0.32
60+
github.com/openziti/channel/v4 v4.2.35
6161
github.com/openziti/cobra-to-md v1.0.1
6262
github.com/openziti/edge-api v0.26.47
63-
github.com/openziti/foundation/v2 v2.0.72
64-
github.com/openziti/identity v1.0.111
63+
github.com/openziti/foundation/v2 v2.0.77
64+
github.com/openziti/identity v1.0.116
6565
github.com/openziti/jwks v1.0.6
6666
github.com/openziti/metrics v1.4.2
67-
github.com/openziti/runzmd v1.0.80
68-
github.com/openziti/sdk-golang v1.2.3
67+
github.com/openziti/runzmd v1.0.82
68+
github.com/openziti/sdk-golang v1.2.4
6969
github.com/openziti/secretstream v0.1.39
70-
github.com/openziti/storage v0.4.26
71-
github.com/openziti/transport/v2 v2.0.188
70+
github.com/openziti/storage v0.4.28
71+
github.com/openziti/transport/v2 v2.0.193
7272
github.com/openziti/x509-claims v1.0.3
7373
github.com/openziti/xweb/v2 v2.3.4
7474
github.com/openziti/ziti-db-explorer v1.1.3
@@ -80,8 +80,8 @@ require (
8080
github.com/shirou/gopsutil/v3 v3.24.5
8181
github.com/sirupsen/logrus v1.9.3
8282
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
83-
github.com/spf13/cobra v1.9.1
84-
github.com/spf13/pflag v1.0.7
83+
github.com/spf13/cobra v1.10.1
84+
github.com/spf13/pflag v1.0.9
8585
github.com/spf13/viper v1.20.1
8686
github.com/stretchr/testify v1.11.1
8787
github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125
@@ -93,11 +93,11 @@ require (
9393
golang.org/x/crypto v0.41.0
9494
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394
9595
golang.org/x/net v0.43.0
96-
golang.org/x/oauth2 v0.30.0
96+
golang.org/x/oauth2 v0.31.0
9797
golang.org/x/sync v0.16.0
98-
golang.org/x/sys v0.35.0
98+
golang.org/x/sys v0.36.0
9999
golang.org/x/text v0.28.0
100-
google.golang.org/protobuf v1.36.7
100+
google.golang.org/protobuf v1.36.9
101101
gopkg.in/AlecAivazis/survey.v1 v1.8.8
102102
gopkg.in/resty.v1 v1.12.0
103103
gopkg.in/yaml.v2 v2.4.0
@@ -203,7 +203,7 @@ require (
203203
go.uber.org/multierr v1.11.0 // indirect
204204
golang.org/x/image v0.30.0 // indirect
205205
golang.org/x/mod v0.26.0 // indirect
206-
golang.org/x/term v0.34.0 // indirect
206+
golang.org/x/term v0.35.0 // indirect
207207
golang.org/x/tools v0.35.0 // indirect
208208
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
209209
nhooyr.io/websocket v1.8.17 // indirect

go.sum

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -567,34 +567,34 @@ github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b/go.mo
567567
github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=
568568
github.com/openziti-incubator/cf v0.0.3 h1:JKs55DbaIxl87nI/Ra/3DHMiz5iaPpu8JjsuN8SnG7w=
569569
github.com/openziti-incubator/cf v0.0.3/go.mod h1:6abCY06bCjKmK2I9kohij+cp9uXIPFiFwSCNZPdMk8E=
570-
github.com/openziti/agent v1.0.31 h1:XvsIJHcwaxzQI7KPx9R/j902PEKKrDB0JXW50t5cTr0=
571-
github.com/openziti/agent v1.0.31/go.mod h1:pjQ9jSOl+9ZR/0Y9+wOwJhGekYwyai2uKB3YCd0nulI=
572-
github.com/openziti/channel/v4 v4.2.28 h1:Siw9fI34P/Gk00mIU1fHwvucP0AeF2pZ+A6KsDsS6ZY=
573-
github.com/openziti/channel/v4 v4.2.28/go.mod h1:8NCwXhSdLhW5OWzoIxzmZy+TBnkHSgwFVZp04ut/efs=
570+
github.com/openziti/agent v1.0.32 h1:g7Kdg39surOyTfR4QVqRzU9Dn0FX+NNCyuBwiswwOSg=
571+
github.com/openziti/agent v1.0.32/go.mod h1:pjQ9jSOl+9ZR/0Y9+wOwJhGekYwyai2uKB3YCd0nulI=
572+
github.com/openziti/channel/v4 v4.2.35 h1:8k3VGo6s+uBMhrIlHcBqljfwyZ3FdpldXKbqB2Ht8aE=
573+
github.com/openziti/channel/v4 v4.2.35/go.mod h1:m5XkWVMM+PchzVcbzbzHUXElnLDGSiUApIyZhDFEYsk=
574574
github.com/openziti/cobra-to-md v1.0.1 h1:WRinNoIRmwWUSJm+pSNXMjOrtU48oxXDZgeCYQfVXxE=
575575
github.com/openziti/cobra-to-md v1.0.1/go.mod h1:FjCpk/yzHF7/r28oSTNr5P57yN5VolpdAtS/g7KNi2c=
576576
github.com/openziti/dilithium v0.3.5 h1:+envGNzxc3OyVPiuvtxivQmCsOjdZjtOMLpQBeMz7eM=
577577
github.com/openziti/dilithium v0.3.5/go.mod h1:XONq1iK6te/WwNzkgZHfIDHordMPqb0hMwJ8bs9EfSk=
578578
github.com/openziti/edge-api v0.26.47 h1:5QZeqhD4HFtox7FS5z816M1+MpJED1DdS6oOH128nI8=
579579
github.com/openziti/edge-api v0.26.47/go.mod h1:sYHVpm26Jr1u7VooNJzTb2b2nGSlmCHMnbGC8XfWSng=
580-
github.com/openziti/foundation/v2 v2.0.72 h1:vy1rTS2IEbnPu+l/pf7b5mbkN48WU3ynfbkHN50G13I=
581-
github.com/openziti/foundation/v2 v2.0.72/go.mod h1:rdyV/BbU8iMi8bG027E4uYK7igNHQdJE54ECeWfrqnI=
582-
github.com/openziti/identity v1.0.111 h1:/uIoT0/s+knZdwvR2hewlV6QqoxxmtSuKf9cpVP+8PI=
583-
github.com/openziti/identity v1.0.111/go.mod h1:5KD8uxf3FzozXrXe+/IC2Qz0/8x0W6U2U2PmgzmLa98=
580+
github.com/openziti/foundation/v2 v2.0.77 h1:aHB+qJuXFE9FZ+9GOF53laemoBxXmUZ2XnBbDy3fxmE=
581+
github.com/openziti/foundation/v2 v2.0.77/go.mod h1:rwLV3heBM+S7CtCKCauiozLWGPPejy2p80M1R65d6Lk=
582+
github.com/openziti/identity v1.0.116 h1:o+vvH1zw0vaG+sn5sVHPWWnxTelZR59QFr9D+4os19g=
583+
github.com/openziti/identity v1.0.116/go.mod h1:hQPdjwWzxroMYSwQV59oE2ER3wUFDWAeAxv++sY2voE=
584584
github.com/openziti/jwks v1.0.6 h1:PR+9OVaMO8oHEoVQmHqeUBExWwLWyODEGJQK2DXHaqE=
585585
github.com/openziti/jwks v1.0.6/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ=
586586
github.com/openziti/metrics v1.4.2 h1:zaBj5DrvRGPWPhS1w7XNkTPyX4KUYwToNGMCtJrkCv8=
587587
github.com/openziti/metrics v1.4.2/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
588-
github.com/openziti/runzmd v1.0.80 h1:5494HCp97fwAYelQFN01NdMDN+DKy4BG6l2X08Hlbz0=
589-
github.com/openziti/runzmd v1.0.80/go.mod h1:lCLdkrYI2SfSZdvjwdkYwn0/pgee95Ut4fBSSAOb0Vg=
590-
github.com/openziti/sdk-golang v1.2.3 h1:Q0bwmVeJcd4RoAuIooyDVJh627gJdikJ7fxAILmjHVY=
591-
github.com/openziti/sdk-golang v1.2.3/go.mod h1:lWa0+QGNtY2JwSHzqvyC4Td26uzBYZS//LKIeCxlBkA=
588+
github.com/openziti/runzmd v1.0.82 h1:ns155E7dwb6v/4k50Uw5rKLDE/Qkb/F5MN3IyGKKclU=
589+
github.com/openziti/runzmd v1.0.82/go.mod h1:DuMFAs2mvNRLAjAd8hlVAxtvrhwvHHw26IakWv+k8iQ=
590+
github.com/openziti/sdk-golang v1.2.4 h1:uWDQ3l9ECYUZBcbFLrZ6x9SybG6Mkl4LckZu0qSbpw8=
591+
github.com/openziti/sdk-golang v1.2.4/go.mod h1:cmQh/rD9fIABwWuiyDeP/s2/0CR1vZsDyGXEbW0YGTU=
592592
github.com/openziti/secretstream v0.1.39 h1:icmwdUwXvyrXxReBLNQ97zfLz6d1Mv01QWB9jg1RylQ=
593593
github.com/openziti/secretstream v0.1.39/go.mod h1:2BkpTHWsTcLeBWToCXzeAogUiGLIrQibx4QXrlhzVrM=
594-
github.com/openziti/storage v0.4.26 h1:VJp0nNjSUu5bHlpbFXo31IlcKbgpjnkgKbxwXGFsSRs=
595-
github.com/openziti/storage v0.4.26/go.mod h1:kaNexmuajBfMppRQp4gD/MpWFLReeclojl9CWWvUqUw=
596-
github.com/openziti/transport/v2 v2.0.188 h1:5ljFTZ9rx+VwCYVU9f84kjUygk5aC+bE5Gl4jQH4jIk=
597-
github.com/openziti/transport/v2 v2.0.188/go.mod h1:s0lQoWGi1L1SC4PGMi9QqWSxkLTonQ4WWU1ehZ3t6AY=
594+
github.com/openziti/storage v0.4.28 h1:I6BW0rr9ujprHOKHbsMaUdmwhDe4a6MUJK1bhwoWRzk=
595+
github.com/openziti/storage v0.4.28/go.mod h1:Ucnj4aM2nWG8cSsZNXSsQhlQQ5+LuDdCiADjKkBUP0c=
596+
github.com/openziti/transport/v2 v2.0.193 h1:BoWdA4AuEAPQhottYgtrs5hJuZurTGc0rsk9yfRyxw8=
597+
github.com/openziti/transport/v2 v2.0.193/go.mod h1:nOjC0AQqgZTykYx3v3OhLFJm8nEZGU/1yhheWIiS+4A=
598598
github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0=
599599
github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE=
600600
github.com/openziti/xweb/v2 v2.3.4 h1:QFRyyvxBuBv9dRJVMW04gpD3dXo6L4vNs4PM3nlYtYM=
@@ -735,13 +735,12 @@ github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
735735
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
736736
github.com/spf13/cobra v1.2.0/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
737737
github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
738-
github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
739-
github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
738+
github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
739+
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
740740
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
741741
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
742-
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
743-
github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M=
744-
github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
742+
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
743+
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
745744
github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns=
746745
github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4=
747746
github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4=
@@ -974,8 +973,8 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ
974973
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
975974
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
976975
golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
977-
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
978-
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
976+
golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo=
977+
golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
979978
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
980979
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
981980
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1068,13 +1067,13 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc
10681067
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
10691068
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
10701069
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1071-
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
1072-
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
1070+
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
1071+
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
10731072
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
10741073
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
10751074
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
1076-
golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
1077-
golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
1075+
golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ=
1076+
golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA=
10781077
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
10791078
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
10801079
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1267,8 +1266,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
12671266
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
12681267
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
12691268
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
1270-
google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A=
1271-
google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
1269+
google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw=
1270+
google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
12721271
gopkg.in/AlecAivazis/survey.v1 v1.8.8 h1:5UtTowJZTz1j7NxVzDGKTz6Lm9IWm8DDF6b7a2wq9VY=
12731272
gopkg.in/AlecAivazis/survey.v1 v1.8.8/go.mod h1:CaHjv79TCgAvXMSFJSVgonHXYWxnhzI3eoHtnX5UgUo=
12741273
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=

0 commit comments

Comments
 (0)