From fdb6bf3485bfaf15fe5b5de16fc7ad2efda6c9a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Feb 2023 03:04:59 +0000 Subject: [PATCH 01/40] Bump github.com/gofiber/fiber/v2 from 2.41.0 to 2.42.0 Bumps [github.com/gofiber/fiber/v2](https://github.com/gofiber/fiber) from 2.41.0 to 2.42.0. - [Release notes](https://github.com/gofiber/fiber/releases) - [Commits](https://github.com/gofiber/fiber/compare/v2.41.0...v2.42.0) --- updated-dependencies: - dependency-name: github.com/gofiber/fiber/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 7 ++++++- go.sum | 14 +++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 5bcbd1d8..f3920bfa 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/fatih/structs v1.1.0 github.com/gliderlabs/ssh v0.3.5 github.com/go-sql-driver/mysql v1.7.0 - github.com/gofiber/fiber/v2 v2.41.0 + github.com/gofiber/fiber/v2 v2.42.0 github.com/gofiber/helmet/v2 v2.2.23 github.com/gofiber/template v1.7.4 github.com/golang-jwt/jwt v3.2.2+incompatible @@ -44,6 +44,7 @@ require ( github.com/go-resty/resty/v2 v2.7.0 // indirect github.com/goccy/go-json v0.9.7 // indirect github.com/golang/protobuf v1.5.2 // indirect + github.com/google/uuid v1.3.0 // indirect github.com/klauspost/compress v1.15.11 // indirect github.com/lestrrat-go/backoff/v2 v2.0.8 // indirect github.com/lestrrat-go/blackmagic v1.0.0 // indirect @@ -53,8 +54,12 @@ require ( github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.17 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect + github.com/philhofer/fwd v1.1.1 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94 // indirect + github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d // indirect + github.com/tinylib/msgp v1.1.6 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect golang.org/x/net v0.5.0 // indirect diff --git a/go.sum b/go.sum index 3ebdc452..1f9c4733 100644 --- a/go.sum +++ b/go.sum @@ -167,8 +167,9 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofiber/fiber/v2 v2.41.0 h1:YhNoUS/OTjEz+/WLYuQ01xI7RXgKEFnGBKMagAu5f0M= github.com/gofiber/fiber/v2 v2.41.0/go.mod h1:RdebcCuCRFp4W6hr3968/XxwJVg0K+jr9/Ae0PFzZ0Q= +github.com/gofiber/fiber/v2 v2.42.0 h1:Fnp7ybWvS+sjNQsFvkhf4G8OhXswvB6Vee8hM/LyS+8= +github.com/gofiber/fiber/v2 v2.42.0/go.mod h1:3+SGNjqMh5VQH5Vz2Wdi43zTIV16ktlFd3x3R6O1Zlc= github.com/gofiber/helmet/v2 v2.2.23 h1:hEastMbezQwbqJgSIFvgtx/lmb51bqi6T6GW/SBhiwo= github.com/gofiber/helmet/v2 v2.2.23/go.mod h1:wqmrFiOYWkoOXtsf4OOdNVUABkjCvwJi9AU8xa/7SAA= github.com/gofiber/template v1.7.4 h1:3K86NpBhDOBAhk6keecxNwqSgALqaHlUIhNItR96N2Y= @@ -248,6 +249,8 @@ github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/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.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= @@ -387,6 +390,8 @@ github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144T github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ= +github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pires/go-proxyproto v0.6.2 h1:KAZ7UteSOt6urjme6ZldyFm4wDe/z0ZUP0Yv0Dos0d8= github.com/pires/go-proxyproto v0.6.2/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -421,6 +426,10 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94 h1:rmMl4fXJhKMNWl+K+r/fq4FbbKI+Ia2m9hYBLm2h4G4= +github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94/go.mod h1:90zrgN3D/WJsDd1iXHT96alCoN2KJo6/4x1DZC3wZs8= +github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d h1:Q+gqLBOPkFGHyCJxXMRqtUgUbTjI8/Ze8vu8GGyNFwo= +github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d/go.mod h1:Gy+0tqhJvgGlqnTF8CVGP0AaGRjwBtXs/a5PA0Y3+A4= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -450,6 +459,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/tinylib/msgp v1.1.6 h1:i+SbKraHhnrf9M5MYmvQhFnbLhAXSDWF8WWsuyRdocw= +github.com/tinylib/msgp v1.1.6/go.mod h1:75BAfg2hauQhs3qedfdDZmWAPcFMAvJE5b9rGOMufyw= 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= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -784,6 +795,7 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc 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-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 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= From a24984e86ddd6d519424ac2543ee1ddda5218156 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Feb 2023 03:02:27 +0000 Subject: [PATCH 02/40] Bump golang.org/x/crypto from 0.5.0 to 0.6.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.5.0 to 0.6.0. - [Release notes](https://github.com/golang/crypto/releases) - [Commits](https://github.com/golang/crypto/compare/v0.5.0...v0.6.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 5bcbd1d8..aa29d89f 100644 --- a/go.mod +++ b/go.mod @@ -27,10 +27,10 @@ require ( github.com/sirupsen/logrus v1.9.0 github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c github.com/valyala/fasthttp v1.44.0 - golang.org/x/crypto v0.5.0 + golang.org/x/crypto v0.6.0 golang.org/x/mod v0.7.0 golang.org/x/oauth2 v0.4.0 - golang.org/x/term v0.4.0 + golang.org/x/term v0.5.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -57,8 +57,8 @@ require ( github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - golang.org/x/net v0.5.0 // indirect - golang.org/x/sys v0.4.0 // indirect + golang.org/x/net v0.6.0 // indirect + golang.org/x/sys v0.5.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.0 // indirect ) diff --git a/go.sum b/go.sum index 3ebdc452..d5ffcd12 100644 --- a/go.sum +++ b/go.sum @@ -498,8 +498,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= 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= @@ -597,8 +597,8 @@ golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -720,14 +720,14 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/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.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/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= From d4d79809948d31e0961d485510f3c76ffe75328e Mon Sep 17 00:00:00 2001 From: zachmann Date: Mon, 13 Feb 2023 09:55:37 +0100 Subject: [PATCH 03/40] [migratedb] fix setup --- CHANGELOG.md | 6 ++++++ cmd/mytoken-server/mytoken-migratedb/main.go | 3 +++ internal/db/dbrepo/versionrepo/versionrepo.go | 11 +++++++++-- internal/model/version/VERSION | 2 +- .../server/web/static/img/mytoken-grey.png | Bin 10643 -> 10643 bytes internal/server/web/static/img/mytoken.png | Bin 10638 -> 10639 bytes mytoken.png | Bin 10638 -> 10639 bytes 7 files changed, 19 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e82c5b85..d724688b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,12 @@ +## mytoken 0.7.3 + +### Bugfixes + +- Fixed a bug in `mytoken-migratedb` were empty databases could not be setup. + ## mytoken 0.7.2 ### Bugfixes diff --git a/cmd/mytoken-server/mytoken-migratedb/main.go b/cmd/mytoken-server/mytoken-migratedb/main.go index ac61322c..39f11168 100644 --- a/cmd/mytoken-server/mytoken-migratedb/main.go +++ b/cmd/mytoken-server/mytoken-migratedb/main.go @@ -134,7 +134,10 @@ var app = &cli.App{ } dbConfig.ReconnectInterval = 60 dbConfig.DBConf.Hosts = dbConfig.Hosts.Value() + tmpScheduleEnabled := dbConfig.DBConf.EnableScheduledCleanup + dbConfig.DBConf.EnableScheduledCleanup = false db.ConnectConfig(dbConfig.DBConf) + dbConfig.DBConf.EnableScheduledCleanup = tmpScheduleEnabled return migrateDB(mytokenNodes) }, } diff --git a/internal/db/dbrepo/versionrepo/versionrepo.go b/internal/db/dbrepo/versionrepo/versionrepo.go index 0c8ef569..4699c041 100644 --- a/internal/db/dbrepo/versionrepo/versionrepo.go +++ b/internal/db/dbrepo/versionrepo/versionrepo.go @@ -109,8 +109,15 @@ func GetVersionState(rlog log.Ext1FieldLogger, tx *sqlx.Tx) (state DBVersionStat return errors.WithStack(tx.Select(&state, `SELECT version, bef, aft FROM version`)) }, ) - if err != nil && strings.HasPrefix(errorfmt.Error(err), "Error 1146: Table") { // Ignore table does not exist error - err = nil + if err != nil { + errStr := errorfmt.Error(err) + if strings.HasPrefix(errStr, "Error 1146") { + errStrs := strings.SplitN(errStr, ":", 2) + if len(errStrs) == 2 && strings.HasPrefix(strings.TrimSpace(errStrs[1]), "Table") { + // Ignore table does not exist error + err = nil + } + } } state.Sort() return diff --git a/internal/model/version/VERSION b/internal/model/version/VERSION index 7486fdbc..f38fc539 100644 --- a/internal/model/version/VERSION +++ b/internal/model/version/VERSION @@ -1 +1 @@ -0.7.2 +0.7.3 diff --git a/internal/server/web/static/img/mytoken-grey.png b/internal/server/web/static/img/mytoken-grey.png index 3a7376889fa51f958268cebf3deb40270f9cba99..6223968bb010feac71c99190e0098b8e036deb9b 100644 GIT binary patch delta 10501 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 diff --git a/internal/server/web/static/img/mytoken.png b/internal/server/web/static/img/mytoken.png index a57433de00b2a8d3024bff7ffccaecfdd4a3fdaa..6dbc5304c730224ba35d20e43ac60f748127fb80 100644 GIT binary patch delta 10498 zcmZu%Wk3|&*B?SU1*Abj5b2OEaYd1o5D-|T8y1m{S*4K>QKV535Q!zEYo(Dc>6Tnl zVu2;z@%ev!_rrdedv@pCJNMlA#fdjaFnAje;!~2`6)$g1r2~N5rW&w&hJI7qv;G-u zMwP^S^R;72f<)IzOp$L(YXDN~*W4mBcf)$$rS334`}2zBo*Mp7O8=WA2ZlZ{LXDIt zZrvxAsU=w&qBMAsO1c_oMiLSdQoMI>!wGpSyp1!lom$rRc>#HWb>9mESA$eIl{vRJ zL1piO%-+;Zv+A8&u{3ohA5Vf-IBlMG(wUA#i-o7g17fsjE`T0M5IEn&3J^?CJr_jE zq&g+(`^`xiV1x@XoS*f+O=B{`Xsm0xFhmr_UI#2!pCjE*8|)Tea?4YqyMbS9Wb>p8 z9x%UHQzdyH*VE++hXEb`%nBMc+wb4NnEDdTt+c0bZ5So+9gppOzQHc{5))uEU8S)f zPVR84afh5Mj7jSWy>Dw2$h6>re{O`NI;xS|1ZJ<&y#S4Wxf{KNqpqW zhn~02^8y^<)%l#{3t{>%?*|9>jlgBpNw|)U-?l4Vj}Cd4>W+`78+Yp-&#!fz$rbRG|5z8RBRPlak9*~{GRLO4n_vl-?xE2NUVzGxe$JrO(@k)Z09%<| zvfH;|vI}PiQpCfVbt77bL<9dD{#d=_&a^KWb)pR9!uhv9OK_iojaIN`jQ9O88lH4a ztAvt_&a#R_$8}VaFfZ)H>874n>i9NIj@f{W#+lmHc&e3@^zWj-b-~srLGIa~a&LvC z(;vS|*>6P1x=TwLUgeLw(dIDH>Rdy7?!%x6-Y&u0%-NI0V<)_OPpZZ>ZrtH+Qe=yl z_MfGKl3kwq5XcK&Z%#`E7rbAG$48aK!M<3$Qr)J6S3i*DVTXq&I(a zb5lBSRz$q6=EVv$hh4FQghrhb6S0w_2-@aRj8D`Iv-;r(?3_&U0k94n8a_^6@vd)M zU-t8qiCs6wyDS)wX5egso_;3ATM$;VE)+Y%U-E#~6MSjH#}*%g|HA3%7I1iED)K$T6@6_>G zJ+sbF;{!iN;dd>!!eJ?^2e~^Q&d%T6ot?}7dczk}3g9xTBT$rIDuQ4{6Iax>_4) zyGQEuu^A;ZfgO`_mNI(6+~-9<4C}u`A3>Gb1CO82kM7r%4D6l$@*s57;CR6Y_Iz2X zyIj~0m%6;{_#$9~z1$uCRk9OZ-Bgi(6$o!a{N)Ov%zrH&PVWM^NxtGwFs(c7`)S== z_a{Zac~Y6~hO)Cjtig@ByZ5FazdJmnZ4T(EqLvN{c22!h{R;~g=M*X(4O#A<7>oG7 zpc~Ee&0|Z^HqZ5Asi?o;jOL9e0{5)!y%axD5uI4{ENuhuzCC!-a!Tsb{>i-yOI^Ms zHWES~>f=chA?d2ZH+gjXw%l3hSRYk4X#Lt<4>WkM+X(dx18Au}Lko-9=HbkW`gD7| z--bvk!qVCD(y{WXY_f1QPQRf@_pSm}X7zJrWOG`i&knGj@x1ixv*Hoh^NBmLP0=3X z3v|?i(seRSMVArda=VpQL$>6>m$Q30xqL>t@TS^}>^IaZ9S*57Ca@!^y_Q$Zk8byw zOB^xox=vi7RTy=Z)d(!F<)Hv38?R?c%n5hGUGhX`&tGOAn+KibKR5Nkn!$f)^(q9M zu4+%No}4{M>gV}lN#P2T&x*NCPUARwN4y)q{`m1S#_25Y=tj&W>t)KG6Yj0 z6w**uCM|9f*s^$%2s;v_WUhuYX?zFSBvkzsa zrYk#g16R3cm)k3Mbado#yn1E|r~r;sTcWNCc#5Ci*VQ#OZMJKjq25x~*Pu*j(+lZ2 zUN*jJ8!$~KlaexQPMj}cHs7_M6J9?^=w|4Rm1JRY<~WvjK$p}I0Kx3N7B_{6_dau} zZE=T-YB#zZRDeLK=g=Q7rW%FNfuju4nxihebkY1Q%5H3x(_N&2>s*ubRC%9+{dHfI z@kcGTUCja+;P6x$t@?|bt@5fm;Sui*2X&)(ivSlflY`)Tg1QpUg#)8=6125#b(*sb zZJMU$*qD)#(Ju9Ihj~oBRhtL#iP`bP(~jq*$B)woGCCwXW zhUE+%(nBLxKIE$tgACmwx9!sdeZYc);^~#p8|fPvR&lkcXO-Xe1%&$U<2VF_$85S&nz zTk_S1F>A^z6!W((h6x7p!?^cdMi_nS6llINmmWTnWy5ixNo|cM@D^?Y%@VOEx~XzK zd!ya^vkG<~~eU>t@J|eu(_2_IZ%F+ZGqZ z&HExj`WsImYJtqCih74F`A*pmf1c%Yrg;wL8r$VB(FezuSD6JGL_mFuX0rZATefOa zGPGK~4c}t?CCc=Mx56kG{G+N$r&P%8u4LwWn{OMi-UKJem3DcPpcd&Z3*-SiPkx`P`0y}XP!sfB)3_*#v4`cB2mT?TO0750YVFhC zhVDER23(lwiPpsdb|+;`ib{{|FQz@?ARpe09Zr3rVO&IUQ`L4MPB=1~^!XH$Al4xP zUU%AkDJs~$I47-;S5Tl~ntZHaucd*_$`WRkQ*Udw%e#$?3k_4uxP3I8m&f-oYm6jv zd5v~)&8IU(pw4ajD+&uL^IVV4`q?}Fm9)E21;a^eB~A;ns!F1#hi$mjXcbl7bbvxMk3vHsRvYQG-Lc#S5(h(J@aR^gPF5QrK9p31YOo50_Wnoysbrd~PtZ6Mz9xzyjuJv(^Wb@lW${N<>t8P4Os#<7)-fcEaUg=FX2m zIht>$7P4$0{(=o2l4Kn3#P$j+zRUs?Zd;3aWpj0Ij5t{I#){@{eDy~9I|T=CFJGWy z1Kn>7X9CLZ2R}u#{FZv#fe>+9P6}?e_&)w6%ht=y`t1v>Ad&go2Vl-njP1Lf(BMA5 z_VUq5pB}gMx{%ZXV}D{a`5F6Pfp%@cIU=#;SW->SGl&;ASp$s_}e5R2TJeT0jnSk~>YTbsuxOJb0;y zv>`sccJjTTr^>t;<@SbumXfdD>Vt8<&cyjpBZ$~)2-*M2)BR-}aJ-;$d-$;Xy;Jk# zgq-30*ZQBoV(TIz(mvb|ZmRW+0%!hgVvA zZJ9_zqcAv5d@&xTBLB}GB0e&P*jo3kiC=k_r@IVs>eL#18@GVS2{vW$TY7Ey?PWoP zJzuW5MF-X*8yt`?G$B_242_H$2eghJsn91%+Se)L(jV{Gw2%2f81|b3%b&&#WzAld zD#0xPv6XqXwUlKlOE5rsX4rgi&W7vzGO5zr;g&=c{5nmjl7@g>A;sUHFMO7CxzmF* zS70l%SJwBN+=No+*f=mTOD_8YyK`I-F;ar?Tj_>@j^V*pAl`aOIj+&p-kNV(`~`QD zZE4Hg0f#lRIr3F2AEBPK@s2TJ=w0J{=>B?UX7vPUkL`HzWrN#l%#6ORkAm7?u_|tu zB!_#g4rDiTVfE&m9lwQyGF#p|^K3BhlZrJ79rr)RcAN-%Q2Uq@rz>#bRrrq zVugXh?({kqbt|`ks(I%Wf$g}lBL{X%{Jm4@$af)*Ju^G?7k|qvmR>VsWu!(MvNXcx zjuKzuWHXNF284y9m!k~vk0sOKBT`=OVoWnm*vUt{A&Rd2@V%a+qsk$z{`qw5JkcTj zKBHvct0;-IA$6GUWMc`vd8+51s@RU1^mK6iB)UqvcATQ_ds$gP+t&ERpxyz3_qxXm zm)7gt=U5 zZCsCs8a@tvz(GvY0!SCvjcg-$^*#LswSftQPD{Kzs1$>3$4it>{Uj#D@0h-GpIUf( zpW~O5n@W%LL36&yY&jWPv&zcwmk*fCD1KwQ$$f~uE6Gtxo&il*Zv2J+tI*5Nx<1Kelt*R&LDxbcwUQB-Bm;(xhjCJLtO)m~|O z2xa)O5o9y(!8ubi-@`{L_`;0iES;&6EOm+FfG3vJ(kqAllW)?%1#C z?p!4m!DHj%XGW=kDTyv!OEl5E-|>Pb;*umsRwyZrJp5-#-ATipWyF{7d~D$iY$2^! z^~<#3x>E`9Kc8hZv3Jm?GmyggQ2CG40@2-2j{%4D=o1qGa4`Rl$q+6mV}je5Ki3?{O`kUk3_t5@zVW$w(`Bz<*v zk4!Z|P3Q5=q1+j>-f>Y55I|m)`j1O*3iUZ>DEMaB`;)S`<7pnqfgkqushwhZ)MQ!W zo>E*q?J3r{2An8Q_Sz#tZ$MO-SQ)>R)i}}u5MhgM6~DN9_pa&Vg7DJptmHy}Xm57@ z;jsU+UsgwloTcmUbZc1O8v#DG+>xX9Db%~3yy9}U9Kt`Fxr#e7l#mr}b1zD)+OkQB3U?oI zhR#=lyscC0B%>wXpIO^OhT*lF+pyhNlaed)b-tY0c%##`4z2j#6BY&mt;0nK&Wr;)4Qz(tA&LSX+on zHub{p@$Ld>X7I6k7Jba2OeYabf-$DusBJ>&5~NXRYv z?^9XYMN?B#KHS0pF2Cd=`I^OePUK{DC`Tp8?!{#eeypm=Pc=&`WVf^1%!fpY4~E|l z?Ew+j)Q8ZDSHFJnGBAy2g}`#DdD|kYmnUH||Lykfmu&(qV10j4>JCjxbz;;2(R1wJ z3@kh0@+&6bib44aTn7xlh?}M3PF&xhI!-UOGJ{l;XYt63erY+bB{MSrV4v!6HLp3F z2v!iBQHE%V{3Pa_Y^ZI58S`%WH7$9$oDOqDbNXQsXm zK7up~9^lF$tu_1j^bRq_tD_z740{2>x`VmEX^9ZoZxB`sZ;dvv#lN@e`ljCLObro2 zuzqYi4C?M!#h5t>B;z^y$`(mzTjq>|wG3afD(6m1DCX+C2l_qbw80-jRhc1=+6XT9 zSUSGr^{^A-SAu-y7NHMm%aliXaDv7q8TO_xRklFi>}`R;Rz`~7b3_XvxSXIwD;Q36 zfV`*N{nZ5vAwQen0x|f@_HnKiZ^v=k3x598;X}bBQnkNSh@YdxFJ*nl5f`nKV?LO_`4iDgjO_?8e;PL9gV;m7ruF z=S|?pk1KVSxVVFHf=35n+$-n0`i<~MygngUDn3JwhcvBG!NP3uO4m#hfQfpZcj|4} zB9kF`0&6`2NE~^XPeVC_xVc8R;xI7AeQzTo`)?46XT)hO*Lb|p=;E0&D z83oVrJF7P7^t`H65*31B5yV)=#+}&vq~U7p$+^R`&xJ>%s4xLv2FeLw-4A+8Eg~aG zMp8U=cRB0bB4`8q#J=qECjDSXdu&M$0(vFySG(hOttCFy;4WlYsi?bY78lRXHrE<; zs`L(BCBz!i%|gMO+Bwgmdg8N74L!fNqLOF!Mwzwu@-~qrN#Fd{wVp2uXVltTa~7vc zfLmxT!E#Bv?B4SpTmQCBOS53`EutE zvQg&|7nUTD6zQDib7xow+dDy?+zy>-E>{B^8R}`u?H1#l@^49WJX#tQQnwyK2e++& zpaCd|*RY0|Fn~y=mxY2YEWo?lDpIo5J>wXJ_|M(KTi(Qy?&j@xRXZ@KD~pjIN!w&b zx9K-aP^eQD+F)jMp{ew;H@7@L%{S$I-;NkTi0`{Qba-qf4BJJ}V!SxNmAKFKz`9KV zceUdrvMS)b(eQh)y^YPb%FHh(-i-?I962x^Ebm&y(vwI_7CvKQocj%;>)y=jLSzdw z8KD>H1Lf!0*Y=Qav_W(>D@lmdNXQk!Rn-#rpL@D)es4(MVY&Z0lmER%K1A2a< zSovzTznkwoZGsBQwE?OvU&jL-ui??GjdweaP@$u@(to*rNaynq70#ustgMvN4!5Xu zHnIz>m!mDE(*G5NDlBxt=-~=)ltV1ld&ZNW^O^qZ{Q|?7^N=lYqVA}4o1C%##rB#6 z%VF&c2c3H1--zwUxyR@27+!KCU*FC<*(htqg&Ao$Ollg_Ko%!zR7C=ze5N10eJxa5 z)3U8YE7Gg|nf1iA2^Ng8a~`5*fmd`?lQOIBOdUUg>;=R*g9L99++$ugV5L7c$-2zs z$fqHsM&oO?);6gp)xfobOhn9E98Rl>3FQjobk*d9c z_Pns##yP?xD>Wd+7AJw)62pv<)XuGcZ` z(*v-ap#p@T4V8VesRXlr47^G~-HM2^9 zwAI%h0A1TRVs8l-UI?I)1aHjF+9lwEEcn=hkg<~)cnifD1PlV!hGL5`7nU}A)0Z!V zwY2-^mTA7wY-g^8SnE6?dS=;6ZS=?Nw$z$ZYg8je`u^ggeoP(#Q)Q2`RwHh^8F=fF zU_Gi2s1inYI(9FzhUL5-3FcegQH!+>bm);a2T4qlv3=JiGj=2=dsU;JXhClm0pQ^Z z%Qw-0pP057%EaY)pZM*}Yq!Ff!bdguGo?6=1W zkRaIw(jdh6vvqE93+%ME#a3sYn~E*p1c?1JKSD88)UkJR#kwaCOwt?sf0)pAS95TM zNzzMFAtXN0e=~o3Zbh#qt48Y?o&@4)8?e5R3A9S+de=k;T@*K{t>EgTLM7dKn&;#l zFiQkEC7%G9JNx|6=arZ6Q3d8n0ORxV6u8NES)1$tnotIA!X8iim#n?*c_< zq+LfWGtV{Wl=G10!%UhMTCywn$SiGw(s7Ebm9$n`UMjr$9?28)6mZ)?@eUB*KbRut zWuH3UeWS3XL?qHdgp^BNKKK2$*ESh4=RRJytv=bPnCa8n|NbkU(RWosK(96Vzl>YL zm)svix!7y|FPFEil2Tt)DYN;4`NI%l_(eVs3GUqOz)vqdmoe%&4CukD zPtniq{_egU`)>4McJ_X@%!uEA>aJb6F|8b%XvJ}5Rh7N`&laC<#@zSI?ZGjv`|6b3 zY>TdnE^o%=NVyt5YbCLX?$lilzJl{Vb$xm9(-UCJ6i(9m6;h=Z`_#EJo-{oXTrCet zc{K8l-!IdoY#)~-$wuXb&u-TE--fP4EEe%1`*etIN#qAY<7GlG>IUX0!qv*dN@;Qo zcc1N?HzeJQW)n5!;hrpHpyE|OD4 znyUmJZ@vHD@G)+l3XIDixGRI&56pc2Srg(vxqyzh^!Eyxu5g-m2TM=>7CNd<<>%)o z!uLh0B&WQ6@^tVP)~U2$elwT`Xl_%+Gulbh8B{v3g9e?_JpsnEM@pOCPt`~~wgq?M z;wn+st&);{rtaIJ=!Ed&s5%3cAc`=A`3n71Kln;iWfgHw&8mI~LnR3r3O;Rf0P$p} z7E2QX{*`TDFl5lOai-zj{^R{F{IP(~Vmjqj`+v8^7|a+5C@!_g_1oJMSASw+4#2f- za4~aVJg)0D1DPA1tZDo$V-nxd?-#QI+^7 z@k#t#OK$-41@H3kFp@W53VXuTk~dt9#6b}|;}xhQyZDC-`|MhmkJBz*d#33IEV;Fv zeGOs)(7EGP?LYP;95zn3oLXFw5w97h;-8sL)55H+t$hQ@B}1tD@Cf8$%D@@}tnBU% z0&maML+bMoPHEn>NQubSCb*^LMbUUIDHmBQa!Ch9@jQHlALL$o;O6GmG{eJC{clrn z3%yj9z%;5rHOXWG`4E%CnaZ@1d0TU{@HOuixWb>e!uNnkIri~#sZP*dEo#ZmY=)I( zRi%}p^JA>ts!MuWn&D1jOcLZ`(q0UP527G? zwi&Wf;JFIW>1&QJ*<(~s^CjV4Og)MjnfjoJVqf>Ah3LNgeh{WRwZxn2#|HKQ)!45~ z^2B8L1~#ib{{$~z_feRWvgPTwbh+gNBRJv0ZALXzh6;E|ggT&8qffrq*&L0?SIE!h z+^h>hj(4wVLP9LT9`#IgNyy@V8A&>Nf+!Tqp9HNblHprEZ|T|iFU%p|TM|hs5(eia z>GiTIli`Auu`d0}WcpM;BP%W`A|1Q#(6|FsGk5$N0nFFcUAbqtyr#oxd?GTEQyy>E zQlkS!GI3dfyKY`*8hx*aDpbBdBSOa+iTfHGp6p`fA9BI0SjuZ6)jm^4A;1KM{QQJi z=7XO`aNpNv@(O)?0H>Eg(7{Zt7uGK`hvtiz-J$9ei2`^0Jy97JRhTi8`Vu+ZH*AE0 zN16E3Zaw{_(kI*vlo!1keMxLg;BCXo%v2Ar0!n4{uyKjGTpy+%5d*O%;5-mW)6B2A z#YC}lD6h)}Tm0oG0E}#bH4M+Iled&6qy&mE0kz}o?+T&B1rKln6bm#Tb;>M8dKDV_ z4M?6$NQmrw)>|h4WNOD~?B%=H1VzujcrU!#)=U-eDL&~v@wBkW6ufV%7L~|T_@H4f za2J^ioA?9wT7Qj@J+nb6*wsMp;SnH;*r)e+|FLidz9tZMI|wvoz+NM__mx;~o^hq2 zwP2^}G!IA{QHr3gkBCCOJYefRY=z8Y5tJ8$8huld%m4}D_uV+y(i(8`#Vn4y#XEvl zmnd}XfjAE@TYNAp0-L~rd>H!k`@DZ*=Nh$T(0;oQ|1v{b z(HjNYGOIR50`S}y5Sas3(pwf&RG5mIKEKUwk&2x#0%kZKJM-%^(!Wq4S*)5Q5Hy1BEi7Dy3&=VY66))7IfpW4Me8o~(|yC$Lo!l8A0`7j(rhN` zx#QT)P7S^+?)GL1*vq3TMw}sf>}|7HY!$7Z14hPjHm}@6$2IEVavbyvjxw)!$i^){3^`Di`V_c~ydOSDI_qH8V?xTr<(FomCKci8sS(IiJ3n ztzD7hxOPs?)$qZ~lN#z@8R)e1#4hIH@m=2+4Q`5Iq~NJT$0?c8MZ=tUuPcC%8jFcO zaYs`1*@UpZD)F+FRVNWQmjfAnfp5jdvsP)Nz$eLp?W^0W&5)=f9p1VRbvi7Kcu_hs z4bkx=P84TmuJYN>5G=I%_ZK9kvf5gSalu5&v(~b7Y;2CwApJnY<6dtyDJ-bgZt(?# zMLS|u1Rv<8nX5qHuQ=+Z2D0oiy9x9x9&9yy`}drJ`!Qw~b< zwKUdYh@u(-)th<;g$UVW4Q}764?TlJO3Qy69tphGXPAwkohDjfKgXp%U`CSG`)sFv zqCb75<}V$!Lq+7Wb5zHmCTq1lRhbF(RQ!7WlsWGGVkeb7MJg(f>qA0^Y>5BVOhboC z$oX#uV0De>7427V5O*ByAZ#ux$Z4P%PQ#NSXhZ$43G0G^*51%R^Le7*dL#DEny87G z!aP<8YSMY{LeK*R;DQ)P0SFV=z6vZa9|rTbBJYGD-tkn}ZH1|QrqY&NlUzo@`AyMT zk8`KiG^`laWc!W;xS%cI>MO%Rv_}f{_Xr(o-7%5?`RUURvc`p>-Xp~li`rcy1A_{| z56&u-s)Z03B;!^zf2wZzu0YD|Q0RQ)TDRgI+D|1Xn0?{%fj)Te;#1cs_B2{LBt z!Ox%hEXj)?xLMmk(R0X1GOGMbOA;@j7ej^Myn0YDs-Zs-PILN4!;=^p5wR)ryEt%_ z94G+>x4j?Me0szDvDmEIM<+P=BK=>Bmw26DrTkM)!KbhUqnKp8lP}|Lo?Xj;2pN$J z{4dnv6*W|FGe!XrlYGFve+?)h))ND9x%N)vNI`;En^(!{d1@r03|gM^F8?rJ;4!Z# z9^w{~pwV47LK#4O%u5{~8ymam!E}&t!G1De8(%7k!$*2GqaDSOp73h^IQHHkV-3=f zCy+4@Le`V) zx$sRj0DYpEeaVjGe!M7ibTn4Zlt%OA6N8cGyym!f@z<|QhCMAoKm}e98*+8eNsC*t zv)2uHT4Gjxya7?`9?VQQ4L98b(-|CutZd{JP7MK0{_;G@k$oVK`+&847jFW1u7q3@ zCI_*&zWkNdZ!{`jOyZ)JvUH?aiq|(=tkTqNqV%lNZeIhqcX+>0jr_rCYVP|$0HJ=| zjX@3SvZH~%+8htA94`3Ya$V|XC*f|hFiHrEOB#yF%HNfgmy#0{6O$JcQ%+FACJ71r Pzhk@s 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 diff --git a/mytoken.png b/mytoken.png index a57433de00b2a8d3024bff7ffccaecfdd4a3fdaa..6dbc5304c730224ba35d20e43ac60f748127fb80 100644 GIT binary patch delta 10498 zcmZu%Wk3|&*B?SU1*Abj5b2OEaYd1o5D-|T8y1m{S*4K>QKV535Q!zEYo(Dc>6Tnl zVu2;z@%ev!_rrdedv@pCJNMlA#fdjaFnAje;!~2`6)$g1r2~N5rW&w&hJI7qv;G-u zMwP^S^R;72f<)IzOp$L(YXDN~*W4mBcf)$$rS334`}2zBo*Mp7O8=WA2ZlZ{LXDIt zZrvxAsU=w&qBMAsO1c_oMiLSdQoMI>!wGpSyp1!lom$rRc>#HWb>9mESA$eIl{vRJ zL1piO%-+;Zv+A8&u{3ohA5Vf-IBlMG(wUA#i-o7g17fsjE`T0M5IEn&3J^?CJr_jE zq&g+(`^`xiV1x@XoS*f+O=B{`Xsm0xFhmr_UI#2!pCjE*8|)Tea?4YqyMbS9Wb>p8 z9x%UHQzdyH*VE++hXEb`%nBMc+wb4NnEDdTt+c0bZ5So+9gppOzQHc{5))uEU8S)f zPVR84afh5Mj7jSWy>Dw2$h6>re{O`NI;xS|1ZJ<&y#S4Wxf{KNqpqW zhn~02^8y^<)%l#{3t{>%?*|9>jlgBpNw|)U-?l4Vj}Cd4>W+`78+Yp-&#!fz$rbRG|5z8RBRPlak9*~{GRLO4n_vl-?xE2NUVzGxe$JrO(@k)Z09%<| zvfH;|vI}PiQpCfVbt77bL<9dD{#d=_&a^KWb)pR9!uhv9OK_iojaIN`jQ9O88lH4a ztAvt_&a#R_$8}VaFfZ)H>874n>i9NIj@f{W#+lmHc&e3@^zWj-b-~srLGIa~a&LvC z(;vS|*>6P1x=TwLUgeLw(dIDH>Rdy7?!%x6-Y&u0%-NI0V<)_OPpZZ>ZrtH+Qe=yl z_MfGKl3kwq5XcK&Z%#`E7rbAG$48aK!M<3$Qr)J6S3i*DVTXq&I(a zb5lBSRz$q6=EVv$hh4FQghrhb6S0w_2-@aRj8D`Iv-;r(?3_&U0k94n8a_^6@vd)M zU-t8qiCs6wyDS)wX5egso_;3ATM$;VE)+Y%U-E#~6MSjH#}*%g|HA3%7I1iED)K$T6@6_>G zJ+sbF;{!iN;dd>!!eJ?^2e~^Q&d%T6ot?}7dczk}3g9xTBT$rIDuQ4{6Iax>_4) zyGQEuu^A;ZfgO`_mNI(6+~-9<4C}u`A3>Gb1CO82kM7r%4D6l$@*s57;CR6Y_Iz2X zyIj~0m%6;{_#$9~z1$uCRk9OZ-Bgi(6$o!a{N)Ov%zrH&PVWM^NxtGwFs(c7`)S== z_a{Zac~Y6~hO)Cjtig@ByZ5FazdJmnZ4T(EqLvN{c22!h{R;~g=M*X(4O#A<7>oG7 zpc~Ee&0|Z^HqZ5Asi?o;jOL9e0{5)!y%axD5uI4{ENuhuzCC!-a!Tsb{>i-yOI^Ms zHWES~>f=chA?d2ZH+gjXw%l3hSRYk4X#Lt<4>WkM+X(dx18Au}Lko-9=HbkW`gD7| z--bvk!qVCD(y{WXY_f1QPQRf@_pSm}X7zJrWOG`i&knGj@x1ixv*Hoh^NBmLP0=3X z3v|?i(seRSMVArda=VpQL$>6>m$Q30xqL>t@TS^}>^IaZ9S*57Ca@!^y_Q$Zk8byw zOB^xox=vi7RTy=Z)d(!F<)Hv38?R?c%n5hGUGhX`&tGOAn+KibKR5Nkn!$f)^(q9M zu4+%No}4{M>gV}lN#P2T&x*NCPUARwN4y)q{`m1S#_25Y=tj&W>t)KG6Yj0 z6w**uCM|9f*s^$%2s;v_WUhuYX?zFSBvkzsa zrYk#g16R3cm)k3Mbado#yn1E|r~r;sTcWNCc#5Ci*VQ#OZMJKjq25x~*Pu*j(+lZ2 zUN*jJ8!$~KlaexQPMj}cHs7_M6J9?^=w|4Rm1JRY<~WvjK$p}I0Kx3N7B_{6_dau} zZE=T-YB#zZRDeLK=g=Q7rW%FNfuju4nxihebkY1Q%5H3x(_N&2>s*ubRC%9+{dHfI z@kcGTUCja+;P6x$t@?|bt@5fm;Sui*2X&)(ivSlflY`)Tg1QpUg#)8=6125#b(*sb zZJMU$*qD)#(Ju9Ihj~oBRhtL#iP`bP(~jq*$B)woGCCwXW zhUE+%(nBLxKIE$tgACmwx9!sdeZYc);^~#p8|fPvR&lkcXO-Xe1%&$U<2VF_$85S&nz zTk_S1F>A^z6!W((h6x7p!?^cdMi_nS6llINmmWTnWy5ixNo|cM@D^?Y%@VOEx~XzK zd!ya^vkG<~~eU>t@J|eu(_2_IZ%F+ZGqZ z&HExj`WsImYJtqCih74F`A*pmf1c%Yrg;wL8r$VB(FezuSD6JGL_mFuX0rZATefOa zGPGK~4c}t?CCc=Mx56kG{G+N$r&P%8u4LwWn{OMi-UKJem3DcPpcd&Z3*-SiPkx`P`0y}XP!sfB)3_*#v4`cB2mT?TO0750YVFhC zhVDER23(lwiPpsdb|+;`ib{{|FQz@?ARpe09Zr3rVO&IUQ`L4MPB=1~^!XH$Al4xP zUU%AkDJs~$I47-;S5Tl~ntZHaucd*_$`WRkQ*Udw%e#$?3k_4uxP3I8m&f-oYm6jv zd5v~)&8IU(pw4ajD+&uL^IVV4`q?}Fm9)E21;a^eB~A;ns!F1#hi$mjXcbl7bbvxMk3vHsRvYQG-Lc#S5(h(J@aR^gPF5QrK9p31YOo50_Wnoysbrd~PtZ6Mz9xzyjuJv(^Wb@lW${N<>t8P4Os#<7)-fcEaUg=FX2m zIht>$7P4$0{(=o2l4Kn3#P$j+zRUs?Zd;3aWpj0Ij5t{I#){@{eDy~9I|T=CFJGWy z1Kn>7X9CLZ2R}u#{FZv#fe>+9P6}?e_&)w6%ht=y`t1v>Ad&go2Vl-njP1Lf(BMA5 z_VUq5pB}gMx{%ZXV}D{a`5F6Pfp%@cIU=#;SW->SGl&;ASp$s_}e5R2TJeT0jnSk~>YTbsuxOJb0;y zv>`sccJjTTr^>t;<@SbumXfdD>Vt8<&cyjpBZ$~)2-*M2)BR-}aJ-;$d-$;Xy;Jk# zgq-30*ZQBoV(TIz(mvb|ZmRW+0%!hgVvA zZJ9_zqcAv5d@&xTBLB}GB0e&P*jo3kiC=k_r@IVs>eL#18@GVS2{vW$TY7Ey?PWoP zJzuW5MF-X*8yt`?G$B_242_H$2eghJsn91%+Se)L(jV{Gw2%2f81|b3%b&&#WzAld zD#0xPv6XqXwUlKlOE5rsX4rgi&W7vzGO5zr;g&=c{5nmjl7@g>A;sUHFMO7CxzmF* zS70l%SJwBN+=No+*f=mTOD_8YyK`I-F;ar?Tj_>@j^V*pAl`aOIj+&p-kNV(`~`QD zZE4Hg0f#lRIr3F2AEBPK@s2TJ=w0J{=>B?UX7vPUkL`HzWrN#l%#6ORkAm7?u_|tu zB!_#g4rDiTVfE&m9lwQyGF#p|^K3BhlZrJ79rr)RcAN-%Q2Uq@rz>#bRrrq zVugXh?({kqbt|`ks(I%Wf$g}lBL{X%{Jm4@$af)*Ju^G?7k|qvmR>VsWu!(MvNXcx zjuKzuWHXNF284y9m!k~vk0sOKBT`=OVoWnm*vUt{A&Rd2@V%a+qsk$z{`qw5JkcTj zKBHvct0;-IA$6GUWMc`vd8+51s@RU1^mK6iB)UqvcATQ_ds$gP+t&ERpxyz3_qxXm zm)7gt=U5 zZCsCs8a@tvz(GvY0!SCvjcg-$^*#LswSftQPD{Kzs1$>3$4it>{Uj#D@0h-GpIUf( zpW~O5n@W%LL36&yY&jWPv&zcwmk*fCD1KwQ$$f~uE6Gtxo&il*Zv2J+tI*5Nx<1Kelt*R&LDxbcwUQB-Bm;(xhjCJLtO)m~|O z2xa)O5o9y(!8ubi-@`{L_`;0iES;&6EOm+FfG3vJ(kqAllW)?%1#C z?p!4m!DHj%XGW=kDTyv!OEl5E-|>Pb;*umsRwyZrJp5-#-ATipWyF{7d~D$iY$2^! z^~<#3x>E`9Kc8hZv3Jm?GmyggQ2CG40@2-2j{%4D=o1qGa4`Rl$q+6mV}je5Ki3?{O`kUk3_t5@zVW$w(`Bz<*v zk4!Z|P3Q5=q1+j>-f>Y55I|m)`j1O*3iUZ>DEMaB`;)S`<7pnqfgkqushwhZ)MQ!W zo>E*q?J3r{2An8Q_Sz#tZ$MO-SQ)>R)i}}u5MhgM6~DN9_pa&Vg7DJptmHy}Xm57@ z;jsU+UsgwloTcmUbZc1O8v#DG+>xX9Db%~3yy9}U9Kt`Fxr#e7l#mr}b1zD)+OkQB3U?oI zhR#=lyscC0B%>wXpIO^OhT*lF+pyhNlaed)b-tY0c%##`4z2j#6BY&mt;0nK&Wr;)4Qz(tA&LSX+on zHub{p@$Ld>X7I6k7Jba2OeYabf-$DusBJ>&5~NXRYv z?^9XYMN?B#KHS0pF2Cd=`I^OePUK{DC`Tp8?!{#eeypm=Pc=&`WVf^1%!fpY4~E|l z?Ew+j)Q8ZDSHFJnGBAy2g}`#DdD|kYmnUH||Lykfmu&(qV10j4>JCjxbz;;2(R1wJ z3@kh0@+&6bib44aTn7xlh?}M3PF&xhI!-UOGJ{l;XYt63erY+bB{MSrV4v!6HLp3F z2v!iBQHE%V{3Pa_Y^ZI58S`%WH7$9$oDOqDbNXQsXm zK7up~9^lF$tu_1j^bRq_tD_z740{2>x`VmEX^9ZoZxB`sZ;dvv#lN@e`ljCLObro2 zuzqYi4C?M!#h5t>B;z^y$`(mzTjq>|wG3afD(6m1DCX+C2l_qbw80-jRhc1=+6XT9 zSUSGr^{^A-SAu-y7NHMm%aliXaDv7q8TO_xRklFi>}`R;Rz`~7b3_XvxSXIwD;Q36 zfV`*N{nZ5vAwQen0x|f@_HnKiZ^v=k3x598;X}bBQnkNSh@YdxFJ*nl5f`nKV?LO_`4iDgjO_?8e;PL9gV;m7ruF z=S|?pk1KVSxVVFHf=35n+$-n0`i<~MygngUDn3JwhcvBG!NP3uO4m#hfQfpZcj|4} zB9kF`0&6`2NE~^XPeVC_xVc8R;xI7AeQzTo`)?46XT)hO*Lb|p=;E0&D z83oVrJF7P7^t`H65*31B5yV)=#+}&vq~U7p$+^R`&xJ>%s4xLv2FeLw-4A+8Eg~aG zMp8U=cRB0bB4`8q#J=qECjDSXdu&M$0(vFySG(hOttCFy;4WlYsi?bY78lRXHrE<; zs`L(BCBz!i%|gMO+Bwgmdg8N74L!fNqLOF!Mwzwu@-~qrN#Fd{wVp2uXVltTa~7vc zfLmxT!E#Bv?B4SpTmQCBOS53`EutE zvQg&|7nUTD6zQDib7xow+dDy?+zy>-E>{B^8R}`u?H1#l@^49WJX#tQQnwyK2e++& zpaCd|*RY0|Fn~y=mxY2YEWo?lDpIo5J>wXJ_|M(KTi(Qy?&j@xRXZ@KD~pjIN!w&b zx9K-aP^eQD+F)jMp{ew;H@7@L%{S$I-;NkTi0`{Qba-qf4BJJ}V!SxNmAKFKz`9KV zceUdrvMS)b(eQh)y^YPb%FHh(-i-?I962x^Ebm&y(vwI_7CvKQocj%;>)y=jLSzdw z8KD>H1Lf!0*Y=Qav_W(>D@lmdNXQk!Rn-#rpL@D)es4(MVY&Z0lmER%K1A2a< zSovzTznkwoZGsBQwE?OvU&jL-ui??GjdweaP@$u@(to*rNaynq70#ustgMvN4!5Xu zHnIz>m!mDE(*G5NDlBxt=-~=)ltV1ld&ZNW^O^qZ{Q|?7^N=lYqVA}4o1C%##rB#6 z%VF&c2c3H1--zwUxyR@27+!KCU*FC<*(htqg&Ao$Ollg_Ko%!zR7C=ze5N10eJxa5 z)3U8YE7Gg|nf1iA2^Ng8a~`5*fmd`?lQOIBOdUUg>;=R*g9L99++$ugV5L7c$-2zs z$fqHsM&oO?);6gp)xfobOhn9E98Rl>3FQjobk*d9c z_Pns##yP?xD>Wd+7AJw)62pv<)XuGcZ` z(*v-ap#p@T4V8VesRXlr47^G~-HM2^9 zwAI%h0A1TRVs8l-UI?I)1aHjF+9lwEEcn=hkg<~)cnifD1PlV!hGL5`7nU}A)0Z!V zwY2-^mTA7wY-g^8SnE6?dS=;6ZS=?Nw$z$ZYg8je`u^ggeoP(#Q)Q2`RwHh^8F=fF zU_Gi2s1inYI(9FzhUL5-3FcegQH!+>bm);a2T4qlv3=JiGj=2=dsU;JXhClm0pQ^Z z%Qw-0pP057%EaY)pZM*}Yq!Ff!bdguGo?6=1W zkRaIw(jdh6vvqE93+%ME#a3sYn~E*p1c?1JKSD88)UkJR#kwaCOwt?sf0)pAS95TM zNzzMFAtXN0e=~o3Zbh#qt48Y?o&@4)8?e5R3A9S+de=k;T@*K{t>EgTLM7dKn&;#l zFiQkEC7%G9JNx|6=arZ6Q3d8n0ORxV6u8NES)1$tnotIA!X8iim#n?*c_< zq+LfWGtV{Wl=G10!%UhMTCywn$SiGw(s7Ebm9$n`UMjr$9?28)6mZ)?@eUB*KbRut zWuH3UeWS3XL?qHdgp^BNKKK2$*ESh4=RRJytv=bPnCa8n|NbkU(RWosK(96Vzl>YL zm)svix!7y|FPFEil2Tt)DYN;4`NI%l_(eVs3GUqOz)vqdmoe%&4CukD zPtniq{_egU`)>4McJ_X@%!uEA>aJb6F|8b%XvJ}5Rh7N`&laC<#@zSI?ZGjv`|6b3 zY>TdnE^o%=NVyt5YbCLX?$lilzJl{Vb$xm9(-UCJ6i(9m6;h=Z`_#EJo-{oXTrCet zc{K8l-!IdoY#)~-$wuXb&u-TE--fP4EEe%1`*etIN#qAY<7GlG>IUX0!qv*dN@;Qo zcc1N?HzeJQW)n5!;hrpHpyE|OD4 znyUmJZ@vHD@G)+l3XIDixGRI&56pc2Srg(vxqyzh^!Eyxu5g-m2TM=>7CNd<<>%)o z!uLh0B&WQ6@^tVP)~U2$elwT`Xl_%+Gulbh8B{v3g9e?_JpsnEM@pOCPt`~~wgq?M z;wn+st&);{rtaIJ=!Ed&s5%3cAc`=A`3n71Kln;iWfgHw&8mI~LnR3r3O;Rf0P$p} z7E2QX{*`TDFl5lOai-zj{^R{F{IP(~Vmjqj`+v8^7|a+5C@!_g_1oJMSASw+4#2f- za4~aVJg)0D1DPA1tZDo$V-nxd?-#QI+^7 z@k#t#OK$-41@H3kFp@W53VXuTk~dt9#6b}|;}xhQyZDC-`|MhmkJBz*d#33IEV;Fv zeGOs)(7EGP?LYP;95zn3oLXFw5w97h;-8sL)55H+t$hQ@B}1tD@Cf8$%D@@}tnBU% z0&maML+bMoPHEn>NQubSCb*^LMbUUIDHmBQa!Ch9@jQHlALL$o;O6GmG{eJC{clrn z3%yj9z%;5rHOXWG`4E%CnaZ@1d0TU{@HOuixWb>e!uNnkIri~#sZP*dEo#ZmY=)I( zRi%}p^JA>ts!MuWn&D1jOcLZ`(q0UP527G? zwi&Wf;JFIW>1&QJ*<(~s^CjV4Og)MjnfjoJVqf>Ah3LNgeh{WRwZxn2#|HKQ)!45~ z^2B8L1~#ib{{$~z_feRWvgPTwbh+gNBRJv0ZALXzh6;E|ggT&8qffrq*&L0?SIE!h z+^h>hj(4wVLP9LT9`#IgNyy@V8A&>Nf+!Tqp9HNblHprEZ|T|iFU%p|TM|hs5(eia z>GiTIli`Auu`d0}WcpM;BP%W`A|1Q#(6|FsGk5$N0nFFcUAbqtyr#oxd?GTEQyy>E zQlkS!GI3dfyKY`*8hx*aDpbBdBSOa+iTfHGp6p`fA9BI0SjuZ6)jm^4A;1KM{QQJi z=7XO`aNpNv@(O)?0H>Eg(7{Zt7uGK`hvtiz-J$9ei2`^0Jy97JRhTi8`Vu+ZH*AE0 zN16E3Zaw{_(kI*vlo!1keMxLg;BCXo%v2Ar0!n4{uyKjGTpy+%5d*O%;5-mW)6B2A z#YC}lD6h)}Tm0oG0E}#bH4M+Iled&6qy&mE0kz}o?+T&B1rKln6bm#Tb;>M8dKDV_ z4M?6$NQmrw)>|h4WNOD~?B%=H1VzujcrU!#)=U-eDL&~v@wBkW6ufV%7L~|T_@H4f za2J^ioA?9wT7Qj@J+nb6*wsMp;SnH;*r)e+|FLidz9tZMI|wvoz+NM__mx;~o^hq2 zwP2^}G!IA{QHr3gkBCCOJYefRY=z8Y5tJ8$8huld%m4}D_uV+y(i(8`#Vn4y#XEvl zmnd}XfjAE@TYNAp0-L~rd>H!k`@DZ*=Nh$T(0;oQ|1v{b z(HjNYGOIR50`S}y5Sas3(pwf&RG5mIKEKUwk&2x#0%kZKJM-%^(!Wq4S*)5Q5Hy1BEi7Dy3&=VY66))7IfpW4Me8o~(|yC$Lo!l8A0`7j(rhN` zx#QT)P7S^+?)GL1*vq3TMw}sf>}|7HY!$7Z14hPjHm}@6$2IEVavbyvjxw)!$i^){3^`Di`V_c~ydOSDI_qH8V?xTr<(FomCKci8sS(IiJ3n ztzD7hxOPs?)$qZ~lN#z@8R)e1#4hIH@m=2+4Q`5Iq~NJT$0?c8MZ=tUuPcC%8jFcO zaYs`1*@UpZD)F+FRVNWQmjfAnfp5jdvsP)Nz$eLp?W^0W&5)=f9p1VRbvi7Kcu_hs z4bkx=P84TmuJYN>5G=I%_ZK9kvf5gSalu5&v(~b7Y;2CwApJnY<6dtyDJ-bgZt(?# zMLS|u1Rv<8nX5qHuQ=+Z2D0oiy9x9x9&9yy`}drJ`!Qw~b< zwKUdYh@u(-)th<;g$UVW4Q}764?TlJO3Qy69tphGXPAwkohDjfKgXp%U`CSG`)sFv zqCb75<}V$!Lq+7Wb5zHmCTq1lRhbF(RQ!7WlsWGGVkeb7MJg(f>qA0^Y>5BVOhboC z$oX#uV0De>7427V5O*ByAZ#ux$Z4P%PQ#NSXhZ$43G0G^*51%R^Le7*dL#DEny87G z!aP<8YSMY{LeK*R;DQ)P0SFV=z6vZa9|rTbBJYGD-tkn}ZH1|QrqY&NlUzo@`AyMT zk8`KiG^`laWc!W;xS%cI>MO%Rv_}f{_Xr(o-7%5?`RUURvc`p>-Xp~li`rcy1A_{| z56&u-s)Z03B;!^zf2wZzu0YD|Q0RQ)TDRgI+D|1Xn0?{%fj)Te;#1cs_B2{LBt z!Ox%hEXj)?xLMmk(R0X1GOGMbOA;@j7ej^Myn0YDs-Zs-PILN4!;=^p5wR)ryEt%_ z94G+>x4j?Me0szDvDmEIM<+P=BK=>Bmw26DrTkM)!KbhUqnKp8lP}|Lo?Xj;2pN$J z{4dnv6*W|FGe!XrlYGFve+?)h))ND9x%N)vNI`;En^(!{d1@r03|gM^F8?rJ;4!Z# z9^w{~pwV47LK#4O%u5{~8ymam!E}&t!G1De8(%7k!$*2GqaDSOp73h^IQHHkV-3=f zCy+4@Le`V) zx$sRj0DYpEeaVjGe!M7ibTn4Zlt%OA6N8cGyym!f@z<|QhCMAoKm}e98*+8eNsC*t zv)2uHT4Gjxya7?`9?VQQ4L98b(-|CutZd{JP7MK0{_;G@k$oVK`+&847jFW1u7q3@ zCI_*&zWkNdZ!{`jOyZ)JvUH?aiq|(=tkTqNqV%lNZeIhqcX+>0jr_rCYVP|$0HJ=| zjX@3SvZH~%+8htA94`3Ya$V|XC*f|hFiHrEOB#yF%HNfgmy#0{6O$JcQ%+FACJ71r Pzhk@s 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 From e3ce46d633a9d73b62b642504c60efc1edab081d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 08:58:23 +0000 Subject: [PATCH 04/40] Bump golang.org/x/oauth2 from 0.4.0 to 0.5.0 Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.4.0 to 0.5.0. - [Release notes](https://github.com/golang/oauth2/releases) - [Commits](https://github.com/golang/oauth2/compare/v0.4.0...v0.5.0) --- updated-dependencies: - dependency-name: golang.org/x/oauth2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index aa29d89f..94b423f7 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/valyala/fasthttp v1.44.0 golang.org/x/crypto v0.6.0 golang.org/x/mod v0.7.0 - golang.org/x/oauth2 v0.4.0 + golang.org/x/oauth2 v0.5.0 golang.org/x/term v0.5.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index d5ffcd12..b9d300ae 100644 --- a/go.sum +++ b/go.sum @@ -622,8 +622,8 @@ golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= -golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= 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= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 4b82bd16bf77c271fb9b2ee06f0d54e77bc7430f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 09:53:41 +0000 Subject: [PATCH 05/40] Bump golang.org/x/mod from 0.7.0 to 0.8.0 Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.7.0 to 0.8.0. - [Release notes](https://github.com/golang/mod/releases) - [Commits](https://github.com/golang/mod/compare/v0.7.0...v0.8.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 94b423f7..170ad7b6 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c github.com/valyala/fasthttp v1.44.0 golang.org/x/crypto v0.6.0 - golang.org/x/mod v0.7.0 + golang.org/x/mod v0.8.0 golang.org/x/oauth2 v0.5.0 golang.org/x/term v0.5.0 gopkg.in/yaml.v3 v3.0.1 diff --git a/go.sum b/go.sum index b9d300ae..ccd59040 100644 --- a/go.sum +++ b/go.sum @@ -538,8 +538,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= From 59df0a8847b08e151e66b3dc41e17ce3435d23f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 09:55:08 +0000 Subject: [PATCH 06/40] Bump github.com/gofiber/helmet/v2 from 2.2.23 to 2.2.24 Bumps [github.com/gofiber/helmet/v2](https://github.com/gofiber/helmet) from 2.2.23 to 2.2.24. - [Release notes](https://github.com/gofiber/helmet/releases) - [Commits](https://github.com/gofiber/helmet/compare/v2.2.23...v2.2.24) --- updated-dependencies: - dependency-name: github.com/gofiber/helmet/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9ae82500..a0e27694 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/gliderlabs/ssh v0.3.5 github.com/go-sql-driver/mysql v1.7.0 github.com/gofiber/fiber/v2 v2.42.0 - github.com/gofiber/helmet/v2 v2.2.23 + github.com/gofiber/helmet/v2 v2.2.24 github.com/gofiber/template v1.7.4 github.com/golang-jwt/jwt v3.2.2+incompatible github.com/ip2location/ip2location-go v8.3.0+incompatible diff --git a/go.sum b/go.sum index 522fae12..15dba6e0 100644 --- a/go.sum +++ b/go.sum @@ -170,8 +170,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofiber/fiber/v2 v2.41.0/go.mod h1:RdebcCuCRFp4W6hr3968/XxwJVg0K+jr9/Ae0PFzZ0Q= github.com/gofiber/fiber/v2 v2.42.0 h1:Fnp7ybWvS+sjNQsFvkhf4G8OhXswvB6Vee8hM/LyS+8= github.com/gofiber/fiber/v2 v2.42.0/go.mod h1:3+SGNjqMh5VQH5Vz2Wdi43zTIV16ktlFd3x3R6O1Zlc= -github.com/gofiber/helmet/v2 v2.2.23 h1:hEastMbezQwbqJgSIFvgtx/lmb51bqi6T6GW/SBhiwo= -github.com/gofiber/helmet/v2 v2.2.23/go.mod h1:wqmrFiOYWkoOXtsf4OOdNVUABkjCvwJi9AU8xa/7SAA= +github.com/gofiber/helmet/v2 v2.2.24 h1:5Qo5kjKmC8yJFp8sB22k7fUkW3kjyp5eB38jYVlyDPQ= +github.com/gofiber/helmet/v2 v2.2.24/go.mod h1:ADBSCgEBgnswL846Gwr06CLlT+ZpTsXpKi4P4o/pPVk= github.com/gofiber/template v1.7.4 h1:3K86NpBhDOBAhk6keecxNwqSgALqaHlUIhNItR96N2Y= github.com/gofiber/template v1.7.4/go.mod h1:rePzgcCYbLaUvaaU7XeAOOg3c0Sif4vRVw3TFjLabxY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= From ab68006a09cbc5786017cff9c8db468e84b818e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 09:59:29 +0000 Subject: [PATCH 07/40] Bump github.com/gofiber/template from 1.7.4 to 1.7.5 Bumps [github.com/gofiber/template](https://github.com/gofiber/template) from 1.7.4 to 1.7.5. - [Release notes](https://github.com/gofiber/template/releases) - [Commits](https://github.com/gofiber/template/compare/v1.7.4...v1.7.5) --- updated-dependencies: - dependency-name: github.com/gofiber/template dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index a0e27694..beb8239f 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-sql-driver/mysql v1.7.0 github.com/gofiber/fiber/v2 v2.42.0 github.com/gofiber/helmet/v2 v2.2.24 - github.com/gofiber/template v1.7.4 + github.com/gofiber/template v1.7.5 github.com/golang-jwt/jwt v3.2.2+incompatible github.com/ip2location/ip2location-go v8.3.0+incompatible github.com/jinzhu/copier v0.3.5 diff --git a/go.sum b/go.sum index 15dba6e0..b90a39cf 100644 --- a/go.sum +++ b/go.sum @@ -167,13 +167,12 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofiber/fiber/v2 v2.41.0/go.mod h1:RdebcCuCRFp4W6hr3968/XxwJVg0K+jr9/Ae0PFzZ0Q= github.com/gofiber/fiber/v2 v2.42.0 h1:Fnp7ybWvS+sjNQsFvkhf4G8OhXswvB6Vee8hM/LyS+8= github.com/gofiber/fiber/v2 v2.42.0/go.mod h1:3+SGNjqMh5VQH5Vz2Wdi43zTIV16ktlFd3x3R6O1Zlc= github.com/gofiber/helmet/v2 v2.2.24 h1:5Qo5kjKmC8yJFp8sB22k7fUkW3kjyp5eB38jYVlyDPQ= github.com/gofiber/helmet/v2 v2.2.24/go.mod h1:ADBSCgEBgnswL846Gwr06CLlT+ZpTsXpKi4P4o/pPVk= -github.com/gofiber/template v1.7.4 h1:3K86NpBhDOBAhk6keecxNwqSgALqaHlUIhNItR96N2Y= -github.com/gofiber/template v1.7.4/go.mod h1:rePzgcCYbLaUvaaU7XeAOOg3c0Sif4vRVw3TFjLabxY= +github.com/gofiber/template v1.7.5 h1:6Yk/lot2RudQp9u+bmIJqFg7kOaFPQ7+LgDE9drYSp8= +github.com/gofiber/template v1.7.5/go.mod h1:cBctw0IkZxBrY5NWKZVSa/dOuYzNbu+sJrzX4c7Qxmc= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= @@ -465,7 +464,6 @@ github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqri github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.41.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= -github.com/valyala/fasthttp v1.43.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= github.com/valyala/fasthttp v1.44.0 h1:R+gLUhldIsfg1HokMuQjdQ5bh9nuXHPIfvkYUu9eR5Q= github.com/valyala/fasthttp v1.44.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= From 104ac34d8dae1be09def83a5478072a89067fac2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Mar 2023 03:58:44 +0000 Subject: [PATCH 08/40] Bump golang.org/x/term from 0.5.0 to 0.6.0 Bumps [golang.org/x/term](https://github.com/golang/term) from 0.5.0 to 0.6.0. - [Release notes](https://github.com/golang/term/releases) - [Commits](https://github.com/golang/term/compare/v0.5.0...v0.6.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index beb8239f..4d74255a 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( golang.org/x/crypto v0.6.0 golang.org/x/mod v0.8.0 golang.org/x/oauth2 v0.5.0 - golang.org/x/term v0.5.0 + golang.org/x/term v0.6.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -63,7 +63,7 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect golang.org/x/net v0.6.0 // indirect - golang.org/x/sys v0.5.0 // indirect + golang.org/x/sys v0.6.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.0 // indirect ) diff --git a/go.sum b/go.sum index b90a39cf..ade13c4c 100644 --- a/go.sum +++ b/go.sum @@ -729,14 +729,14 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= 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= From a61f2331e5d2e6d5646e66813c68eb50318e55a5 Mon Sep 17 00:00:00 2001 From: zachmann Date: Mon, 3 Apr 2023 14:42:12 +0200 Subject: [PATCH 09/40] use rfc8707 for requesting aud --- CHANGELOG.md | 17 ++++- config/example-config.yaml | 8 +++ internal/config/config.go | 38 +++++++--- .../token/access/accessTokenEndpoint.go | 14 ++-- internal/model/version/VERSION | 2 +- internal/oidc/authcode/authcode.go | 16 +++-- internal/oidc/oidcreqres/request.go | 67 ++++++------------ internal/oidc/refresh/refresh.go | 11 +-- .../server/web/static/img/mytoken-grey.png | Bin 10643 -> 10638 bytes internal/server/web/static/img/mytoken.png | Bin 10639 -> 10632 bytes mytoken.png | Bin 10639 -> 10632 bytes 11 files changed, 101 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d724688b..ace4e5a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,22 @@ -## mytoken 0.7.3 +## mytoken 0.8.0 + +### Features + +- Added support for RFC8707 for requesting audience restricted ATs + +### Changes + +- Default behavior for requesting audience restricted ATs is now according to RFC8707; the previous behavor can be + configured with these options: + ```yaml + audience: + use_rfc8707: false + request_parameter: "audience" + space_separate_auds: true + ``` ### Bugfixes diff --git a/config/example-config.yaml b/config/example-config.yaml index d8e3d5a3..d2e3b263 100644 --- a/config/example-config.yaml +++ b/config/example-config.yaml @@ -205,4 +205,12 @@ providers: # Maximum lifetime for mytokens for this issuer, given in seconds. On default the lifetime of mytokens is not # restricted. Setting this value to 0, means that there is no maximum lifetime. mytokens_max_lifetime: 0 + # Settings related to how the audience(s) of ATs is requested + audience: + # Unless false audiences are requested according to RFC8707; other options are ignored; + use_rfc8707: true + # The parameter used in the request, common options are "resource" and "audience" + request_parameter: "resource" + # Defines how multiple audience values in a request are handled; + space_separate_auds: false diff --git a/internal/config/config.go b/internal/config/config.go index bd07ee3f..d5465d40 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -108,6 +108,11 @@ var defaultConfig = Config{ }, } +const ( + AudienceParameterAudience = "audience" + AudienceParameterResource = "resource" +) + // Config holds the server configuration type Config struct { IssuerURL string `yaml:"issuer"` @@ -330,15 +335,21 @@ type signingConf struct { // ProviderConf holds information about a provider type ProviderConf struct { - Issuer string `yaml:"issuer"` - ClientID string `yaml:"client_id"` - ClientSecret string `yaml:"client_secret"` - Scopes []string `yaml:"scopes"` - MytokensMaxLifetime int64 `yaml:"mytokens_max_lifetime"` - Endpoints *oauth2x.Endpoints `yaml:"-"` - Provider *oidc.Provider `yaml:"-"` - Name string `yaml:"name"` - AudienceRequestParameter string `yaml:"audience_request_parameter"` + Issuer string `yaml:"issuer"` + ClientID string `yaml:"client_id"` + ClientSecret string `yaml:"client_secret"` + Scopes []string `yaml:"scopes"` + MytokensMaxLifetime int64 `yaml:"mytokens_max_lifetime"` + Endpoints *oauth2x.Endpoints `yaml:"-"` + Provider *oidc.Provider `yaml:"-"` + Name string `yaml:"name"` + Audience audienceConf `yaml:"audience"` +} + +type audienceConf struct { + RFC8707 bool `yaml:"use_rfc8707"` + RequestParameter string `yaml:"request_parameter"` + SpaceSeparateAuds bool `yaml:"space_separate_auds"` } // ServiceOperatorConf is type holding the configuration for the service operator of this mytoken instance @@ -452,8 +463,13 @@ func validate() error { iss0, iss1 := issuerutils.GetIssuerWithAndWithoutSlash(p.Issuer) conf.ProviderByIssuer[iss0] = p conf.ProviderByIssuer[iss1] = p - if p.AudienceRequestParameter == "" { - p.AudienceRequestParameter = "resource" + if p.Audience.RFC8707 { + p.Audience.RequestParameter = AudienceParameterResource + p.Audience.SpaceSeparateAuds = false + } else { + if p.Audience.RequestParameter == "" { + p.Audience.RequestParameter = AudienceParameterResource + } } } if conf.IssuerURL == "" { diff --git a/internal/endpoints/token/access/accessTokenEndpoint.go b/internal/endpoints/token/access/accessTokenEndpoint.go index a28d8ce3..aceaaa19 100644 --- a/internal/endpoints/token/access/accessTokenEndpoint.go +++ b/internal/endpoints/token/access/accessTokenEndpoint.go @@ -68,24 +68,24 @@ func HandleAccessTokenEndpoint(ctx *fiber.Ctx) error { } func parseScopesAndAudienceToUse( - reqScope, reqAud string, usedRestriction *restrictions.Restriction, + reqScope string, reqAud []string, usedRestriction *restrictions.Restriction, providerScopes []string, ) ( string, - string, + []string, ) { scopes := strings.Join(providerScopes, " ") // default if no restrictions apply - auds := "" // default if no restrictions apply + auds := []string{} // default if no restrictions apply if usedRestriction != nil { if reqScope != "" { scopes = reqScope } else if usedRestriction.Scope != "" { scopes = usedRestriction.Scope } - if reqAud != "" { + if len(reqAud) > 0 { auds = reqAud } else if len(usedRestriction.Audiences) > 0 { - auds = strings.Join(usedRestriction.Audiences, " ") + auds = usedRestriction.Audiences } } return scopes, auds @@ -108,7 +108,9 @@ func HandleAccessTokenRefresh( } } - scopes, auds := parseScopesAndAudienceToUse(req.Scope, req.Audience, usedRestriction, provider.Scopes) + scopes, auds := parseScopesAndAudienceToUse( + req.Scope, strings.Split(req.Audience, " "), usedRestriction, provider.Scopes, + ) oidcRes, oidcErrRes, err := refresh.DoFlowAndUpdateDB(rlog, provider, mt.ID, req.Mytoken.JWT, rt, scopes, auds) if err != nil { rlog.Errorf("%s", errorfmt.Full(err)) diff --git a/internal/model/version/VERSION b/internal/model/version/VERSION index f38fc539..a3df0a69 100644 --- a/internal/model/version/VERSION +++ b/internal/model/version/VERSION @@ -1 +1 @@ -0.7.3 +0.8.0 diff --git a/internal/oidc/authcode/authcode.go b/internal/oidc/authcode/authcode.go index 4fee7c5b..dfa1559e 100644 --- a/internal/oidc/authcode/authcode.go +++ b/internal/oidc/authcode/authcode.go @@ -92,10 +92,18 @@ func GetAuthorizationURL( } auds := restrictions.GetAudiences() if len(auds) > 0 { - additionalParams = append( - additionalParams, - oauth2.SetAuthURLParam(provider.AudienceRequestParameter, strings.Join(auds, " ")), - ) + if provider.Audience.SpaceSeparateAuds { + additionalParams = append( + additionalParams, + oauth2.SetAuthURLParam(provider.Audience.RequestParameter, strings.Join(auds, " ")), + ) + } else { + for _, a := range auds { + additionalParams = append( + additionalParams, oauth2.SetAuthURLParam(provider.Audience.RequestParameter, a), + ) + } + } } return oauth2Config.AuthCodeURL(oState.State(), additionalParams...), nil diff --git a/internal/oidc/oidcreqres/request.go b/internal/oidc/oidcreqres/request.go index cb11df5d..f34c394b 100644 --- a/internal/oidc/oidcreqres/request.go +++ b/internal/oidc/oidcreqres/request.go @@ -1,30 +1,21 @@ package oidcreqres import ( - "encoding/json" - "reflect" + "net/url" "strings" - "github.com/oidc-mytoken/utils/utils" - "github.com/pkg/errors" - "github.com/oidc-mytoken/server/internal/config" iutils "github.com/oidc-mytoken/server/internal/utils" ) -// RefreshRequest is the oidc request for an refresh flow +// RefreshRequest is the oidc request for a refresh flow type RefreshRequest struct { - GrantType string `json:"grant_type"` - RefreshToken string `json:"refresh_token"` - Scopes string `json:"scope,omitempty"` - Audiences string `json:"resource,omitempty"` // The "resource" key will be replaced with the string in resourceParameter + GrantType string + RefreshToken string + Scopes string + Audiences []string resourceParameter string -} - -// MarshalJSON implements the json.Marshaler interface -func (r *RefreshRequest) MarshalJSON() ([]byte, error) { - data, err := json.Marshal(r.ToFormData()) - return data, errors.WithStack(err) + spaceDelimited bool } // NewRefreshRequest creates a new RefreshRequest for a given refresh token @@ -32,44 +23,30 @@ func NewRefreshRequest(rt string, conf *config.ProviderConf) *RefreshRequest { return &RefreshRequest{ GrantType: "refresh_token", RefreshToken: rt, - resourceParameter: conf.AudienceRequestParameter, + resourceParameter: conf.Audience.RequestParameter, + spaceDelimited: conf.Audience.SpaceSeparateAuds, } } -func parseTagValue(tag string) (value string, omitEmpty bool) { - tmp := strings.Split(tag, ",") - value = tmp[0] - if len(tmp) > 1 { - rest := tmp[1:] - if utils.StringInSlice("omitempty", rest) { - omitEmpty = true - } +// ToURLValues formats the RefreshRequest as a url.Values +func (r *RefreshRequest) ToURLValues() url.Values { + m := make(url.Values) + m["grant_type"] = []string{r.GrantType} + m["refresh_token"] = []string{r.RefreshToken} + if r.Scopes != "" { + m["scope"] = []string{r.Scopes} } - return -} - -// ToFormData formats the RefreshRequest as a string map -func (r *RefreshRequest) ToFormData() map[string]string { - v := reflect.ValueOf(*r) - t := v.Type() - m := make(map[string]string) - for i := 0; i < t.NumField(); i++ { - f := t.Field(i) - if k := f.Tag.Get("json"); k != "" { - key, omitempty := parseTagValue(k) - if key == "resource" { - key = r.resourceParameter - } - value := v.Field(i).String() - if !omitempty || value != "" { - m[key] = value - } + if len(r.Audiences) > 0 && r.Audiences[0] != "" { + if r.spaceDelimited { + m[r.resourceParameter] = []string{strings.Join(r.Audiences, " ")} + } else { + m[r.resourceParameter] = r.Audiences } } return m } -// RevokeRequest is a oidc request for revoking tokens +// RevokeRequest is an oidc request for revoking tokens type RevokeRequest struct { Token string `json:"token"` TokenType string `json:"token_type_hint"` diff --git a/internal/oidc/refresh/refresh.go b/internal/oidc/refresh/refresh.go index 8c44fe08..efd9396e 100644 --- a/internal/oidc/refresh/refresh.go +++ b/internal/oidc/refresh/refresh.go @@ -16,7 +16,8 @@ type UpdateChangedRT func(rlog log.Ext1FieldLogger, tokenID mtid.MTID, newRT, my // DoFlowWithoutUpdate uses a refresh token to obtain a new access token; if the refresh token changes, this is ignored func DoFlowWithoutUpdate( - rlog log.Ext1FieldLogger, provider *config.ProviderConf, tokenID mtid.MTID, mytoken, rt, scopes, audiences string, + rlog log.Ext1FieldLogger, provider *config.ProviderConf, tokenID mtid.MTID, mytoken, rt, scopes string, + audiences []string, ) (*oidcreqres.OIDCTokenResponse, *oidcreqres.OIDCErrorResponse, error) { return DoFlowAndUpdate(rlog, provider, tokenID, mytoken, rt, scopes, audiences, nil) } @@ -24,7 +25,8 @@ func DoFlowWithoutUpdate( // DoFlowAndUpdate uses a refresh token to obtain a new access token; if the refresh token changes, the // UpdateChangedRT function is used to update the refresh token func DoFlowAndUpdate( - rlog log.Ext1FieldLogger, provider *config.ProviderConf, tokenID mtid.MTID, mytoken, rt, scopes, audiences string, + rlog log.Ext1FieldLogger, provider *config.ProviderConf, tokenID mtid.MTID, mytoken, rt, scopes string, + audiences []string, updateFnc UpdateChangedRT, ) (*oidcreqres.OIDCTokenResponse, *oidcreqres.OIDCErrorResponse, error) { req := oidcreqres.NewRefreshRequest(rt, provider) @@ -32,7 +34,7 @@ func DoFlowAndUpdate( req.Audiences = audiences httpRes, err := httpclient.Do().R(). SetBasicAuth(provider.ClientID, provider.ClientSecret). - SetFormData(req.ToFormData()). + SetFormDataFromValues(req.ToURLValues()). SetResult(&oidcreqres.OIDCTokenResponse{}). SetError(&oidcreqres.OIDCErrorResponse{}). Post(provider.Endpoints.Token) @@ -58,7 +60,8 @@ func DoFlowAndUpdate( // DoFlowAndUpdateDB uses a refresh token to obtain a new access token; if the refresh token changes, it is // updated in the database func DoFlowAndUpdateDB( - rlog log.Ext1FieldLogger, provider *config.ProviderConf, tokenID mtid.MTID, mytoken, rt, scopes, audiences string, + rlog log.Ext1FieldLogger, provider *config.ProviderConf, tokenID mtid.MTID, mytoken, rt, scopes string, + audiences []string, ) (*oidcreqres.OIDCTokenResponse, *oidcreqres.OIDCErrorResponse, error) { return DoFlowAndUpdate(rlog, provider, tokenID, mytoken, rt, scopes, audiences, updateChangedRTInDB) } diff --git a/internal/server/web/static/img/mytoken-grey.png b/internal/server/web/static/img/mytoken-grey.png index 6223968bb010feac71c99190e0098b8e036deb9b..b832bdfbb41d1a603f8d1db3ca905dbdaa404765 100644 GIT binary patch delta 10496 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�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 N)~B|y1Pd;q{}1xKeMtZS delta 10502 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

rzRELtdXR$ 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 Nhv$`fngy4@{{Xc#R5btq literal 10639 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 diff --git a/mytoken.png b/mytoken.png index 6dbc5304c730224ba35d20e43ac60f748127fb80..f08c11a25d781f23865f3b7dc33931102bbccaf5 100644 GIT binary patch delta 10491 zcmZu%Wn5HW6TWoGlF}hah)6C-he&rxcQ;Ec4HuM@5>Qe=Q9?nw7nT%6T4L$$M(Ofh z|DWIeaKGI1J3D9Qo|)%)W|H+{_1+|b*jV=f7W*;lBmj7%t0MnQKVW8mJ~)Ko#Wdd0 zqK|`!;gi}CZfz4@i*~9i1u{PEy0;s@>_n^;EVQ{*oj-1s{vdiu$~Q+w_L=>@g8sPw z-Vn$9pd8M<^RKmArjPLPd2nWa5%DPd%;p9z$fQnkWNDlU*3{%kE)Eyxlk5%Tfnvid zzxVdCd{`1lo69pULe`mW3^+-Rp|Sk$vXZd*3EHgz%J5g$nu}QB7<)h^ar^E-tudFR zYjz)T`o!(9_M`DtxVjvE3eWFm%xM=7i`{&F>s`kuM8y=N&VVMa_J;PcIdG>KsgyPG z(6%>S=BeY*`_Cu=A{P1P*N>Za!DfpB=k*Esao_`8J4;~mi3e*E27kS0{#?D&=w2ks zoh6d=IoIno4;uGFyo+4`B=|tUWVp!_4!Rp(1lro}_gge1lFChSZLKlIbvt0(5IczD zg>S$^aVvo&ZUq$jC%F!{k0f1@#mSm`n6lNIxvdBk2b*UINx2#O27

rzRELtdXR$ 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 Nhv$`fngy4@{{Xc#R5btq literal 10639 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 From a6a5ef5373e5a66e6f9eb8cfdc351edf6744ee16 Mon Sep 17 00:00:00 2001 From: zachmann Date: Mon, 3 Apr 2023 14:53:34 +0200 Subject: [PATCH 10/40] improve code --- internal/config/config.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index d5465d40..f2deaa88 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -466,10 +466,8 @@ func validate() error { if p.Audience.RFC8707 { p.Audience.RequestParameter = AudienceParameterResource p.Audience.SpaceSeparateAuds = false - } else { - if p.Audience.RequestParameter == "" { - p.Audience.RequestParameter = AudienceParameterResource - } + } else if p.Audience.RequestParameter == "" { + p.Audience.RequestParameter = AudienceParameterResource } } if conf.IssuerURL == "" { From e2206aa2e12ac52557205bcdc257fc9f87093ceb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 12:55:13 +0000 Subject: [PATCH 11/40] Bump golang.org/x/oauth2 from 0.5.0 to 0.6.0 Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.5.0 to 0.6.0. - [Release notes](https://github.com/golang/oauth2/releases) - [Commits](https://github.com/golang/oauth2/compare/v0.5.0...v0.6.0) --- updated-dependencies: - dependency-name: golang.org/x/oauth2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 4d74255a..d9d57487 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/valyala/fasthttp v1.44.0 golang.org/x/crypto v0.6.0 golang.org/x/mod v0.8.0 - golang.org/x/oauth2 v0.5.0 + golang.org/x/oauth2 v0.6.0 golang.org/x/term v0.6.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -62,7 +62,7 @@ require ( github.com/tinylib/msgp v1.1.6 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - golang.org/x/net v0.6.0 // indirect + golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.0 // indirect diff --git a/go.sum b/go.sum index ade13c4c..ccfef53a 100644 --- a/go.sum +++ b/go.sum @@ -606,8 +606,8 @@ golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -631,8 +631,8 @@ golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= -golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= 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= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From f2939caff43e31b8037f338a0fec28f63383e003 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 12:55:16 +0000 Subject: [PATCH 12/40] Bump github.com/valyala/fasthttp from 1.44.0 to 1.45.0 Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp) from 1.44.0 to 1.45.0. - [Release notes](https://github.com/valyala/fasthttp/releases) - [Commits](https://github.com/valyala/fasthttp/compare/v1.44.0...v1.45.0) --- updated-dependencies: - dependency-name: github.com/valyala/fasthttp dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 10 +++++----- go.sum | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 4d74255a..6ae7b355 100644 --- a/go.mod +++ b/go.mod @@ -26,8 +26,8 @@ require ( github.com/satori/go.uuid v1.2.0 github.com/sirupsen/logrus v1.9.0 github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c - github.com/valyala/fasthttp v1.44.0 - golang.org/x/crypto v0.6.0 + github.com/valyala/fasthttp v1.45.0 + golang.org/x/crypto v0.7.0 golang.org/x/mod v0.8.0 golang.org/x/oauth2 v0.5.0 golang.org/x/term v0.6.0 @@ -35,7 +35,7 @@ require ( ) require ( - github.com/andybalholm/brotli v1.0.4 // indirect + github.com/andybalholm/brotli v1.0.5 // indirect github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect github.com/cbroglie/mustache v1.4.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.1 // indirect @@ -45,7 +45,7 @@ require ( github.com/goccy/go-json v0.9.7 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/google/uuid v1.3.0 // indirect - github.com/klauspost/compress v1.15.11 // indirect + github.com/klauspost/compress v1.16.3 // indirect github.com/lestrrat-go/backoff/v2 v2.0.8 // indirect github.com/lestrrat-go/blackmagic v1.0.0 // indirect github.com/lestrrat-go/httpcc v1.0.1 // indirect @@ -62,7 +62,7 @@ require ( github.com/tinylib/msgp v1.1.6 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - golang.org/x/net v0.6.0 // indirect + golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.0 // indirect diff --git a/go.sum b/go.sum index ade13c4c..8be6a123 100644 --- a/go.sum +++ b/go.sum @@ -71,8 +71,9 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -311,8 +312,8 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= -github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= +github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/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= @@ -464,8 +465,9 @@ github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqri github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.41.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= -github.com/valyala/fasthttp v1.44.0 h1:R+gLUhldIsfg1HokMuQjdQ5bh9nuXHPIfvkYUu9eR5Q= github.com/valyala/fasthttp v1.44.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= +github.com/valyala/fasthttp v1.45.0 h1:zPkkzpIn8tdHZUrVa6PzYd0i5verqiPSkgTd3bSUcpA= +github.com/valyala/fasthttp v1.45.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/yosssi/ace v0.0.5/go.mod h1:ALfIzm2vT7t5ZE7uoIZqF3TQ7SAOyupFZnkrF5id+K0= @@ -507,8 +509,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= 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= @@ -606,8 +608,8 @@ golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= From 2a558816a1173ed5503f5bacf39a357f4904ea69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 13:10:25 +0000 Subject: [PATCH 13/40] Bump golang.org/x/mod from 0.8.0 to 0.9.0 Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.8.0 to 0.9.0. - [Release notes](https://github.com/golang/mod/releases) - [Commits](https://github.com/golang/mod/compare/v0.8.0...v0.9.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 882dbcb9..4c5dd4e6 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c github.com/valyala/fasthttp v1.45.0 golang.org/x/crypto v0.7.0 - golang.org/x/mod v0.8.0 + golang.org/x/mod v0.9.0 golang.org/x/oauth2 v0.6.0 golang.org/x/term v0.6.0 gopkg.in/yaml.v3 v3.0.1 diff --git a/go.sum b/go.sum index cd5add99..2cc8fdbb 100644 --- a/go.sum +++ b/go.sum @@ -549,8 +549,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= From 6219e8b024ed3feea3d841c662d9f77b8b0dba7c Mon Sep 17 00:00:00 2001 From: Gabriel Zachmann Date: Mon, 3 Apr 2023 15:13:39 +0200 Subject: [PATCH 14/40] [ci] only deploy to -dev on prerel --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 57ad0a5b..8e61d46d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -81,6 +81,9 @@ prerelease: deploy-dev: stage: deploy + only: + refs: + - prerel before_script: - mkdir -p /root/.ssh - cp $KNOWN_HOSTS /root/.ssh/known_hosts From 76946e3c3e0eabd5c940931c383e376d1c6aa8a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 13:15:28 +0000 Subject: [PATCH 15/40] Bump github.com/gofiber/helmet/v2 from 2.2.24 to 2.2.25 Bumps [github.com/gofiber/helmet/v2](https://github.com/gofiber/helmet) from 2.2.24 to 2.2.25. - [Release notes](https://github.com/gofiber/helmet/releases) - [Commits](https://github.com/gofiber/helmet/compare/v2.2.24...v2.2.25) --- updated-dependencies: - dependency-name: github.com/gofiber/helmet/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 10 +++++----- go.sum | 26 ++++++++++++++++++++------ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 4c5dd4e6..ce759f37 100644 --- a/go.mod +++ b/go.mod @@ -9,8 +9,8 @@ require ( github.com/fatih/structs v1.1.0 github.com/gliderlabs/ssh v0.3.5 github.com/go-sql-driver/mysql v1.7.0 - github.com/gofiber/fiber/v2 v2.42.0 - github.com/gofiber/helmet/v2 v2.2.24 + github.com/gofiber/fiber/v2 v2.43.0 + github.com/gofiber/helmet/v2 v2.2.25 github.com/gofiber/template v1.7.5 github.com/golang-jwt/jwt v3.2.2+incompatible github.com/ip2location/ip2location-go v8.3.0+incompatible @@ -54,12 +54,12 @@ require ( github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.17 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect - github.com/philhofer/fwd v1.1.1 // indirect + github.com/philhofer/fwd v1.1.2 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94 // indirect - github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d // indirect - github.com/tinylib/msgp v1.1.6 // indirect + github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee // indirect + github.com/tinylib/msgp v1.1.8 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect golang.org/x/net v0.8.0 // indirect diff --git a/go.sum b/go.sum index 2cc8fdbb..bf770fad 100644 --- a/go.sum +++ b/go.sum @@ -168,10 +168,11 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofiber/fiber/v2 v2.42.0 h1:Fnp7ybWvS+sjNQsFvkhf4G8OhXswvB6Vee8hM/LyS+8= github.com/gofiber/fiber/v2 v2.42.0/go.mod h1:3+SGNjqMh5VQH5Vz2Wdi43zTIV16ktlFd3x3R6O1Zlc= -github.com/gofiber/helmet/v2 v2.2.24 h1:5Qo5kjKmC8yJFp8sB22k7fUkW3kjyp5eB38jYVlyDPQ= -github.com/gofiber/helmet/v2 v2.2.24/go.mod h1:ADBSCgEBgnswL846Gwr06CLlT+ZpTsXpKi4P4o/pPVk= +github.com/gofiber/fiber/v2 v2.43.0 h1:yit3E4kHf178B60p5CQBa/3v+WVuziWMa/G2ZNyLJB0= +github.com/gofiber/fiber/v2 v2.43.0/go.mod h1:mpS1ZNE5jU+u+BA4FbM+KKnUzJ4wzTK+FT2tG3tU+6I= +github.com/gofiber/helmet/v2 v2.2.25 h1:PC90SBQQ/tzcDUGJtTHAIftdLMa6ylICUCUiM6qzU9s= +github.com/gofiber/helmet/v2 v2.2.25/go.mod h1:3cn2RTs4wU4QEjwxM8dMwHiZprgJjeIvVGntP16Et1Y= github.com/gofiber/template v1.7.5 h1:6Yk/lot2RudQp9u+bmIJqFg7kOaFPQ7+LgDE9drYSp8= github.com/gofiber/template v1.7.5/go.mod h1:cBctw0IkZxBrY5NWKZVSa/dOuYzNbu+sJrzX4c7Qxmc= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -390,8 +391,9 @@ github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144T github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ= github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= +github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= github.com/pires/go-proxyproto v0.6.2 h1:KAZ7UteSOt6urjme6ZldyFm4wDe/z0ZUP0Yv0Dos0d8= github.com/pires/go-proxyproto v0.6.2/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -428,8 +430,9 @@ github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94 h1:rmMl4fXJhKMNWl+K+r/fq4FbbKI+Ia2m9hYBLm2h4G4= github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94/go.mod h1:90zrgN3D/WJsDd1iXHT96alCoN2KJo6/4x1DZC3wZs8= -github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d h1:Q+gqLBOPkFGHyCJxXMRqtUgUbTjI8/Ze8vu8GGyNFwo= github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d/go.mod h1:Gy+0tqhJvgGlqnTF8CVGP0AaGRjwBtXs/a5PA0Y3+A4= +github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee h1:8Iv5m6xEo1NR1AvpV+7XmhI4r39LGNzwUL4YpMuL5vk= +github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee/go.mod h1:qwtSXrKuJh/zsFQ12yEE89xfCrGKK63Rr7ctU/uCo4g= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -459,8 +462,9 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tinylib/msgp v1.1.6 h1:i+SbKraHhnrf9M5MYmvQhFnbLhAXSDWF8WWsuyRdocw= github.com/tinylib/msgp v1.1.6/go.mod h1:75BAfg2hauQhs3qedfdDZmWAPcFMAvJE5b9rGOMufyw= +github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= +github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= 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= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -549,6 +553,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -608,6 +614,7 @@ golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -648,6 +655,7 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/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/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -731,12 +739,14 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -749,6 +759,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.5.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.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -809,6 +821,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 5178e8baa4a8a92bf608e2dbb43140aab8513fbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 13:17:45 +0000 Subject: [PATCH 16/40] Bump github.com/pires/go-proxyproto from 0.6.2 to 0.7.0 Bumps [github.com/pires/go-proxyproto](https://github.com/pires/go-proxyproto) from 0.6.2 to 0.7.0. - [Release notes](https://github.com/pires/go-proxyproto/releases) - [Commits](https://github.com/pires/go-proxyproto/compare/v0.6.2...v0.7.0) --- updated-dependencies: - dependency-name: github.com/pires/go-proxyproto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ce759f37..b95802da 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/oidc-mytoken/lib v0.7.0 github.com/oidc-mytoken/utils v0.1.2 github.com/patrickmn/go-cache v2.1.0+incompatible - github.com/pires/go-proxyproto v0.6.2 + github.com/pires/go-proxyproto v0.7.0 github.com/pkg/errors v0.9.1 github.com/satori/go.uuid v1.2.0 github.com/sirupsen/logrus v1.9.0 diff --git a/go.sum b/go.sum index bf770fad..c53b10c8 100644 --- a/go.sum +++ b/go.sum @@ -394,8 +394,8 @@ github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= -github.com/pires/go-proxyproto v0.6.2 h1:KAZ7UteSOt6urjme6ZldyFm4wDe/z0ZUP0Yv0Dos0d8= -github.com/pires/go-proxyproto v0.6.2/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY= +github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs= +github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= From 2ecd481d69932176b1f0fba0ad5f0b9942d02536 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 13:19:20 +0000 Subject: [PATCH 17/40] Bump github.com/gofiber/template from 1.7.5 to 1.8.0 Bumps [github.com/gofiber/template](https://github.com/gofiber/template) from 1.7.5 to 1.8.0. - [Release notes](https://github.com/gofiber/template/releases) - [Commits](https://github.com/gofiber/template/compare/v1.7.5...v1.8.0) --- updated-dependencies: - dependency-name: github.com/gofiber/template dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index ce759f37..9a29c133 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-sql-driver/mysql v1.7.0 github.com/gofiber/fiber/v2 v2.43.0 github.com/gofiber/helmet/v2 v2.2.25 - github.com/gofiber/template v1.7.5 + github.com/gofiber/template v1.8.0 github.com/golang-jwt/jwt v3.2.2+incompatible github.com/ip2location/ip2location-go v8.3.0+incompatible github.com/jinzhu/copier v0.3.5 diff --git a/go.sum b/go.sum index bf770fad..9300a429 100644 --- a/go.sum +++ b/go.sum @@ -168,13 +168,12 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofiber/fiber/v2 v2.42.0/go.mod h1:3+SGNjqMh5VQH5Vz2Wdi43zTIV16ktlFd3x3R6O1Zlc= github.com/gofiber/fiber/v2 v2.43.0 h1:yit3E4kHf178B60p5CQBa/3v+WVuziWMa/G2ZNyLJB0= github.com/gofiber/fiber/v2 v2.43.0/go.mod h1:mpS1ZNE5jU+u+BA4FbM+KKnUzJ4wzTK+FT2tG3tU+6I= github.com/gofiber/helmet/v2 v2.2.25 h1:PC90SBQQ/tzcDUGJtTHAIftdLMa6ylICUCUiM6qzU9s= github.com/gofiber/helmet/v2 v2.2.25/go.mod h1:3cn2RTs4wU4QEjwxM8dMwHiZprgJjeIvVGntP16Et1Y= -github.com/gofiber/template v1.7.5 h1:6Yk/lot2RudQp9u+bmIJqFg7kOaFPQ7+LgDE9drYSp8= -github.com/gofiber/template v1.7.5/go.mod h1:cBctw0IkZxBrY5NWKZVSa/dOuYzNbu+sJrzX4c7Qxmc= +github.com/gofiber/template v1.8.0 h1:jOn9RhxYO7rHTHGLNRpYfDoVm8b5GH/dtl15ZT5NifE= +github.com/gofiber/template v1.8.0/go.mod h1:jf2w+ioGUS5swf5C/VK+FyE+DI19uz+vXHCX/TIAxIk= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= @@ -358,7 +357,7 @@ github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPn github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-slim v0.0.0-20200618151855-bde33eecb5ee/go.mod h1:ma9TUJeni8LGZMJvOwbAv/FOwiwqIMQN570LnpqCBSM= +github.com/mattn/go-slim v0.0.4/go.mod h1:kXIwPrQbAZrhungtweoDO6qQQpUem6XkBg/mXykpoO0= github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRUbg= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -469,7 +468,6 @@ github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqri github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.41.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= -github.com/valyala/fasthttp v1.44.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= github.com/valyala/fasthttp v1.45.0 h1:zPkkzpIn8tdHZUrVa6PzYd0i5verqiPSkgTd3bSUcpA= github.com/valyala/fasthttp v1.45.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= From aa1f7c4fc17967e49e6e6b71ec03cdf965e93d0e Mon Sep 17 00:00:00 2001 From: zachmann Date: Mon, 3 Apr 2023 15:24:11 +0200 Subject: [PATCH 18/40] update changelog --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ace4e5a8..2a764edf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,19 @@ - Fixed a bug in `mytoken-migratedb` were empty databases could not be setup. +### Dependencies + +- Bump golang.org/x/term from 0.5.0 to 0.6.0 +- Bump github.com/valyala/fasthttp from 1.44.0 to 1.45.0 +- Bump golang.org/x/net from 0.6.0 to 0.7.0 +- Bump golang.org/x/crypto from 0.6.0 to 0.7.0 +- Bump golang.org/x/oauth2 from 0.5.0 to 0.6.0 +- Bump golang.org/x/mod from 0.8.0 to 0.9.0 +- Bump github.com/gofiber/helmet/v2 from 2.2.24 to 2.2.25 +- Bump github.com/gofiber/template from 1.7.5 to 1.8.0 +- Bump github.com/gofiber/fiber/v2 from 2.42.0 to 2.43.0 +- Bump github.com/pires/go-proxyproto from 0.6.2 to 0.7.0 + ## mytoken 0.7.2 ### Bugfixes From 9ab453ca3850f7f99fd2775b803f0a20ddb21eb1 Mon Sep 17 00:00:00 2001 From: zachmann Date: Wed, 12 Apr 2023 12:54:00 +0200 Subject: [PATCH 19/40] add mom_id in mytoken from mytoken transfercode response --- CHANGELOG.md | 5 +++++ go.mod | 2 +- go.sum | 2 ++ internal/mytoken/pkg/mytoken.go | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a764edf..d5e160fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,11 @@ space_separate_auds: true ``` +### API + +- When creating a mytoken from a mytoken and it is returned as a transfer code the response now contains the + `mom_id` of the created mytoken. + ### Bugfixes - Fixed a bug in `mytoken-migratedb` were empty databases could not be setup. diff --git a/go.mod b/go.mod index 51329fff..37ab9888 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/jinzhu/copier v0.3.5 github.com/jmoiron/sqlx v1.3.5 github.com/lestrrat-go/jwx v1.2.25 - github.com/oidc-mytoken/api v0.10.0 + github.com/oidc-mytoken/api v0.10.1-0.20230412103735-ccd26fb9a9ae github.com/oidc-mytoken/lib v0.7.0 github.com/oidc-mytoken/utils v0.1.2 github.com/patrickmn/go-cache v2.1.0+incompatible diff --git a/go.sum b/go.sum index 47b87642..9ef9e797 100644 --- a/go.sum +++ b/go.sum @@ -381,6 +381,8 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA github.com/oidc-mytoken/api v0.9.1/go.mod h1:DBIlUbaIgGlf607VZx8zFC97VR3WNN0kaMVO1AqyTdE= github.com/oidc-mytoken/api v0.10.0 h1:+LCMb7et/roU+Baifho9bcOOAoqDzMSOJt4T1EgI5nk= github.com/oidc-mytoken/api v0.10.0/go.mod h1:DS2/0gUjt84jVq/4jqs7mSoUtv1DDEp3xexF7HW1qe4= +github.com/oidc-mytoken/api v0.10.1-0.20230412103735-ccd26fb9a9ae h1:IJPDSV9qvkjYe78cVcpfupt0nNM3MHH4j6spsUVgZBY= +github.com/oidc-mytoken/api v0.10.1-0.20230412103735-ccd26fb9a9ae/go.mod h1:DS2/0gUjt84jVq/4jqs7mSoUtv1DDEp3xexF7HW1qe4= github.com/oidc-mytoken/lib v0.7.0 h1:/uPQ10ColbCZ79wotV6aa3yfU6Lbaucis2+TrfVIXdQ= github.com/oidc-mytoken/lib v0.7.0/go.mod h1:D0vrMn1szss52mJKwI+sTsSakVCP6qCk0l0kAjd4YtA= github.com/oidc-mytoken/utils v0.1.2 h1:nmKIw/k4OkQ/9ww06W7krJ4yTwvDbuCRCjjRCmI9gSE= diff --git a/internal/mytoken/pkg/mytoken.go b/internal/mytoken/pkg/mytoken.go index d64573bb..f41d0f0c 100644 --- a/internal/mytoken/pkg/mytoken.go +++ b/internal/mytoken/pkg/mytoken.go @@ -260,6 +260,7 @@ func (mt *Mytoken) ToTokenResponse( res.TransferCode = transferCode res.MytokenType = model.ResponseTypeTransferCode res.ExpiresIn = expiresIn + res.MOMID = mt.ID.Hash() return res, err } return mt.toMytokenResponse(jwt), nil From fabb8c7130a88583665e458a14041cb56ffa6da2 Mon Sep 17 00:00:00 2001 From: zachmann Date: Thu, 13 Apr 2023 17:26:25 +0200 Subject: [PATCH 20/40] fix wrong dates when db uses non-UTC tz --- CHANGELOG.md | 1 + internal/db/cluster/cluster.go | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a764edf..8ed92b2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ ### Bugfixes +- Fixed a bug where wrong dates where returned if the database used a different timezone than UTC. - Fixed a bug in `mytoken-migratedb` were empty databases could not be setup. ### Dependencies diff --git a/internal/db/cluster/cluster.go b/internal/db/cluster/cluster.go index dcee805c..5e8cb042 100644 --- a/internal/db/cluster/cluster.go +++ b/internal/db/cluster/cluster.go @@ -154,7 +154,8 @@ func connectDSN(dsn string) (*sqlx.DB, error) { db.SetConnMaxLifetime(time.Minute * 4) db.SetMaxOpenConns(10) db.SetMaxIdleConns(10) - return db, nil + _, err = db.Exec(`SET time_zone="+0:00"`) + return db, err } // Transact does a database transaction for the passed function From f3bb42fc0fe0f2f651820c0191b75a0392ec1095 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Apr 2023 03:58:42 +0000 Subject: [PATCH 21/40] Bump github.com/gofiber/fiber/v2 from 2.43.0 to 2.44.0 Bumps [github.com/gofiber/fiber/v2](https://github.com/gofiber/fiber) from 2.43.0 to 2.44.0. - [Release notes](https://github.com/gofiber/fiber/releases) - [Commits](https://github.com/gofiber/fiber/compare/v2.43.0...v2.44.0) --- updated-dependencies: - dependency-name: github.com/gofiber/fiber/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 6 +++--- go.sum | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 51329fff..9a334157 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/fatih/structs v1.1.0 github.com/gliderlabs/ssh v0.3.5 github.com/go-sql-driver/mysql v1.7.0 - github.com/gofiber/fiber/v2 v2.43.0 + github.com/gofiber/fiber/v2 v2.44.0 github.com/gofiber/helmet/v2 v2.2.25 github.com/gofiber/template v1.8.0 github.com/golang-jwt/jwt v3.2.2+incompatible @@ -52,7 +52,7 @@ require ( github.com/lestrrat-go/iter v1.0.1 // indirect github.com/lestrrat-go/option v1.0.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.18 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/philhofer/fwd v1.1.2 // indirect github.com/rivo/uniseg v0.2.0 // indirect @@ -63,7 +63,7 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect golang.org/x/net v0.8.0 // indirect - golang.org/x/sys v0.6.0 // indirect + golang.org/x/sys v0.7.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.0 // indirect ) diff --git a/go.sum b/go.sum index 47b87642..d38802de 100644 --- a/go.sum +++ b/go.sum @@ -168,8 +168,9 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofiber/fiber/v2 v2.43.0 h1:yit3E4kHf178B60p5CQBa/3v+WVuziWMa/G2ZNyLJB0= github.com/gofiber/fiber/v2 v2.43.0/go.mod h1:mpS1ZNE5jU+u+BA4FbM+KKnUzJ4wzTK+FT2tG3tU+6I= +github.com/gofiber/fiber/v2 v2.44.0 h1:Z90bEvPcJM5GFJnu1py0E1ojoerkyew3iiNJ78MQCM8= +github.com/gofiber/fiber/v2 v2.44.0/go.mod h1:VTMtb/au8g01iqvHyaCzftuM/xmZgKOZCtFzz6CdV9w= github.com/gofiber/helmet/v2 v2.2.25 h1:PC90SBQQ/tzcDUGJtTHAIftdLMa6ylICUCUiM6qzU9s= github.com/gofiber/helmet/v2 v2.2.25/go.mod h1:3cn2RTs4wU4QEjwxM8dMwHiZprgJjeIvVGntP16Et1Y= github.com/gofiber/template v1.8.0 h1:jOn9RhxYO7rHTHGLNRpYfDoVm8b5GH/dtl15ZT5NifE= @@ -353,8 +354,9 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= +github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-slim v0.0.4/go.mod h1:kXIwPrQbAZrhungtweoDO6qQQpUem6XkBg/mXykpoO0= @@ -738,8 +740,9 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From fa9ca3dea161bf871fea8011aa8c7c2e80124c22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Apr 2023 03:57:43 +0000 Subject: [PATCH 22/40] Bump github.com/valyala/fasthttp from 1.45.0 to 1.46.0 Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp) from 1.45.0 to 1.46.0. - [Release notes](https://github.com/valyala/fasthttp/releases) - [Commits](https://github.com/valyala/fasthttp/compare/v1.45.0...v1.46.0) --- updated-dependencies: - dependency-name: github.com/valyala/fasthttp dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 51329fff..a24646e6 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/satori/go.uuid v1.2.0 github.com/sirupsen/logrus v1.9.0 github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c - github.com/valyala/fasthttp v1.45.0 + github.com/valyala/fasthttp v1.46.0 golang.org/x/crypto v0.7.0 golang.org/x/mod v0.9.0 golang.org/x/oauth2 v0.6.0 diff --git a/go.sum b/go.sum index 47b87642..f094f4d0 100644 --- a/go.sum +++ b/go.sum @@ -468,8 +468,9 @@ github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqri github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.41.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= -github.com/valyala/fasthttp v1.45.0 h1:zPkkzpIn8tdHZUrVa6PzYd0i5verqiPSkgTd3bSUcpA= github.com/valyala/fasthttp v1.45.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= +github.com/valyala/fasthttp v1.46.0 h1:6ZRhrFg8zBXTRYY6vdzbFhqsBd7FVv123pV2m9V87U4= +github.com/valyala/fasthttp v1.46.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/yosssi/ace v0.0.5/go.mod h1:ALfIzm2vT7t5ZE7uoIZqF3TQ7SAOyupFZnkrF5id+K0= From 5f7f62aa5ed450fec93bfc116142b14a816a7e00 Mon Sep 17 00:00:00 2001 From: zachmann Date: Tue, 25 Apr 2023 12:02:18 +0200 Subject: [PATCH 23/40] fix db getpassword with password file --- internal/config/config.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index f2deaa88..4a9944c5 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -362,11 +362,8 @@ type ServiceOperatorConf struct { // GetPassword returns the password for this database config. If necessary it reads it from the password file. func (conf *DBConf) GetPassword() string { - if conf.Password != "" { - return conf.Password - } if conf.PasswordFile == "" { - return "" + return conf.Password } content, err := os.ReadFile(conf.PasswordFile) if err != nil { From 61e632c35d039c3a8e8cd895ae3bbda5feaafc7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 13:49:03 +0000 Subject: [PATCH 24/40] Bump golang.org/x/crypto from 0.7.0 to 0.8.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.7.0 to 0.8.0. - [Release notes](https://github.com/golang/crypto/releases) - [Commits](https://github.com/golang/crypto/compare/v0.7.0...v0.8.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 6 +++--- go.sum | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 4af445d2..a413eb35 100644 --- a/go.mod +++ b/go.mod @@ -27,10 +27,10 @@ require ( github.com/sirupsen/logrus v1.9.0 github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c github.com/valyala/fasthttp v1.46.0 - golang.org/x/crypto v0.7.0 + golang.org/x/crypto v0.8.0 golang.org/x/mod v0.9.0 golang.org/x/oauth2 v0.6.0 - golang.org/x/term v0.6.0 + golang.org/x/term v0.7.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -62,7 +62,7 @@ require ( github.com/tinylib/msgp v1.1.8 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - golang.org/x/net v0.8.0 // indirect + golang.org/x/net v0.9.0 // indirect golang.org/x/sys v0.7.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.0 // indirect diff --git a/go.sum b/go.sum index 75ca2444..e80ecc29 100644 --- a/go.sum +++ b/go.sum @@ -381,7 +381,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oidc-mytoken/api v0.9.1/go.mod h1:DBIlUbaIgGlf607VZx8zFC97VR3WNN0kaMVO1AqyTdE= -github.com/oidc-mytoken/api v0.10.0 h1:+LCMb7et/roU+Baifho9bcOOAoqDzMSOJt4T1EgI5nk= github.com/oidc-mytoken/api v0.10.0/go.mod h1:DS2/0gUjt84jVq/4jqs7mSoUtv1DDEp3xexF7HW1qe4= github.com/oidc-mytoken/api v0.10.1-0.20230412103735-ccd26fb9a9ae h1:IJPDSV9qvkjYe78cVcpfupt0nNM3MHH4j6spsUVgZBY= github.com/oidc-mytoken/api v0.10.1-0.20230412103735-ccd26fb9a9ae/go.mod h1:DS2/0gUjt84jVq/4jqs7mSoUtv1DDEp3xexF7HW1qe4= @@ -516,8 +515,9 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -618,8 +618,9 @@ golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -751,8 +752,9 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 1a8f9f08121fad83ae08da2eafb6993131eba203 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 13:49:17 +0000 Subject: [PATCH 25/40] Bump github.com/gofiber/helmet/v2 from 2.2.25 to 2.2.26 Bumps [github.com/gofiber/helmet/v2](https://github.com/gofiber/helmet) from 2.2.25 to 2.2.26. - [Release notes](https://github.com/gofiber/helmet/releases) - [Commits](https://github.com/gofiber/helmet/compare/v2.2.25...v2.2.26) --- updated-dependencies: - dependency-name: github.com/gofiber/helmet/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 4af445d2..e8c9d305 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/gliderlabs/ssh v0.3.5 github.com/go-sql-driver/mysql v1.7.0 github.com/gofiber/fiber/v2 v2.44.0 - github.com/gofiber/helmet/v2 v2.2.25 + github.com/gofiber/helmet/v2 v2.2.26 github.com/gofiber/template v1.8.0 github.com/golang-jwt/jwt v3.2.2+incompatible github.com/ip2location/ip2location-go v8.3.0+incompatible diff --git a/go.sum b/go.sum index 75ca2444..f9c9044e 100644 --- a/go.sum +++ b/go.sum @@ -171,8 +171,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofiber/fiber/v2 v2.43.0/go.mod h1:mpS1ZNE5jU+u+BA4FbM+KKnUzJ4wzTK+FT2tG3tU+6I= github.com/gofiber/fiber/v2 v2.44.0 h1:Z90bEvPcJM5GFJnu1py0E1ojoerkyew3iiNJ78MQCM8= github.com/gofiber/fiber/v2 v2.44.0/go.mod h1:VTMtb/au8g01iqvHyaCzftuM/xmZgKOZCtFzz6CdV9w= -github.com/gofiber/helmet/v2 v2.2.25 h1:PC90SBQQ/tzcDUGJtTHAIftdLMa6ylICUCUiM6qzU9s= -github.com/gofiber/helmet/v2 v2.2.25/go.mod h1:3cn2RTs4wU4QEjwxM8dMwHiZprgJjeIvVGntP16Et1Y= +github.com/gofiber/helmet/v2 v2.2.26 h1:KreQVUpCIGppPQ6Yt8qQMaIR4fVXMnvBdsda0dJSsO8= +github.com/gofiber/helmet/v2 v2.2.26/go.mod h1:XE0DF4cgf0M5xIt7qyAK5zOi8jJblhxfSDv9DAmEEQo= github.com/gofiber/template v1.8.0 h1:jOn9RhxYO7rHTHGLNRpYfDoVm8b5GH/dtl15ZT5NifE= github.com/gofiber/template v1.8.0/go.mod h1:jf2w+ioGUS5swf5C/VK+FyE+DI19uz+vXHCX/TIAxIk= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -381,7 +381,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oidc-mytoken/api v0.9.1/go.mod h1:DBIlUbaIgGlf607VZx8zFC97VR3WNN0kaMVO1AqyTdE= -github.com/oidc-mytoken/api v0.10.0 h1:+LCMb7et/roU+Baifho9bcOOAoqDzMSOJt4T1EgI5nk= github.com/oidc-mytoken/api v0.10.0/go.mod h1:DS2/0gUjt84jVq/4jqs7mSoUtv1DDEp3xexF7HW1qe4= github.com/oidc-mytoken/api v0.10.1-0.20230412103735-ccd26fb9a9ae h1:IJPDSV9qvkjYe78cVcpfupt0nNM3MHH4j6spsUVgZBY= github.com/oidc-mytoken/api v0.10.1-0.20230412103735-ccd26fb9a9ae/go.mod h1:DS2/0gUjt84jVq/4jqs7mSoUtv1DDEp3xexF7HW1qe4= From 683fb71bf968269e364b39188dba7178cb2d2ba3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 13:50:39 +0000 Subject: [PATCH 26/40] Bump github.com/gofiber/template from 1.8.0 to 1.8.1 Bumps [github.com/gofiber/template](https://github.com/gofiber/template) from 1.8.0 to 1.8.1. - [Release notes](https://github.com/gofiber/template/releases) - [Commits](https://github.com/gofiber/template/compare/v1.8.0...v1.8.1) --- updated-dependencies: - dependency-name: github.com/gofiber/template dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index e8c9d305..d10da125 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-sql-driver/mysql v1.7.0 github.com/gofiber/fiber/v2 v2.44.0 github.com/gofiber/helmet/v2 v2.2.26 - github.com/gofiber/template v1.8.0 + github.com/gofiber/template v1.8.1 github.com/golang-jwt/jwt v3.2.2+incompatible github.com/ip2location/ip2location-go v8.3.0+incompatible github.com/jinzhu/copier v0.3.5 diff --git a/go.sum b/go.sum index f9c9044e..a6214cbc 100644 --- a/go.sum +++ b/go.sum @@ -168,13 +168,12 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofiber/fiber/v2 v2.43.0/go.mod h1:mpS1ZNE5jU+u+BA4FbM+KKnUzJ4wzTK+FT2tG3tU+6I= github.com/gofiber/fiber/v2 v2.44.0 h1:Z90bEvPcJM5GFJnu1py0E1ojoerkyew3iiNJ78MQCM8= github.com/gofiber/fiber/v2 v2.44.0/go.mod h1:VTMtb/au8g01iqvHyaCzftuM/xmZgKOZCtFzz6CdV9w= github.com/gofiber/helmet/v2 v2.2.26 h1:KreQVUpCIGppPQ6Yt8qQMaIR4fVXMnvBdsda0dJSsO8= github.com/gofiber/helmet/v2 v2.2.26/go.mod h1:XE0DF4cgf0M5xIt7qyAK5zOi8jJblhxfSDv9DAmEEQo= -github.com/gofiber/template v1.8.0 h1:jOn9RhxYO7rHTHGLNRpYfDoVm8b5GH/dtl15ZT5NifE= -github.com/gofiber/template v1.8.0/go.mod h1:jf2w+ioGUS5swf5C/VK+FyE+DI19uz+vXHCX/TIAxIk= +github.com/gofiber/template v1.8.1 h1:KLnNtXqH3LTzquU0NsLMqX3YGd3pD562UhSNaIca5HI= +github.com/gofiber/template v1.8.1/go.mod h1:+2x8bRo2TAXnqp0RUN2MdyKshUi+BulPoUCOHstFLqE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= @@ -354,7 +353,6 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= From 739779ee91c16c13c20d4c6f8f4617b586c8251c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:01:22 +0000 Subject: [PATCH 27/40] Bump golang.org/x/mod from 0.9.0 to 0.10.0 Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.9.0 to 0.10.0. - [Release notes](https://github.com/golang/mod/releases) - [Commits](https://github.com/golang/mod/compare/v0.9.0...v0.10.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4f777798..42916aae 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c github.com/valyala/fasthttp v1.46.0 golang.org/x/crypto v0.8.0 - golang.org/x/mod v0.9.0 + golang.org/x/mod v0.10.0 golang.org/x/oauth2 v0.6.0 golang.org/x/term v0.7.0 gopkg.in/yaml.v3 v3.0.1 diff --git a/go.sum b/go.sum index 3be27f5e..5bb7b982 100644 --- a/go.sum +++ b/go.sum @@ -556,8 +556,8 @@ golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= -golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= From a10d3773f0d805255cf7133b694396a1907585cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:04:49 +0000 Subject: [PATCH 28/40] Bump golang.org/x/oauth2 from 0.6.0 to 0.7.0 Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.6.0 to 0.7.0. - [Release notes](https://github.com/golang/oauth2/releases) - [Commits](https://github.com/golang/oauth2/compare/v0.6.0...v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/oauth2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 42916aae..fa0d6ffc 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/valyala/fasthttp v1.46.0 golang.org/x/crypto v0.8.0 golang.org/x/mod v0.10.0 - golang.org/x/oauth2 v0.6.0 + golang.org/x/oauth2 v0.7.0 golang.org/x/term v0.7.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 5bb7b982..b04c8b62 100644 --- a/go.sum +++ b/go.sum @@ -642,8 +642,8 @@ golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= -golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= -golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= 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= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From d0bd3d7cbecdb0c4291137fef08300cb6a68de9c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 03:59:28 +0000 Subject: [PATCH 29/40] Bump github.com/go-sql-driver/mysql from 1.7.0 to 1.7.1 Bumps [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) from 1.7.0 to 1.7.1. - [Release notes](https://github.com/go-sql-driver/mysql/releases) - [Changelog](https://github.com/go-sql-driver/mysql/blob/master/CHANGELOG.md) - [Commits](https://github.com/go-sql-driver/mysql/compare/v1.7.0...v1.7.1) --- updated-dependencies: - dependency-name: github.com/go-sql-driver/mysql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fa0d6ffc..a1772d55 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/evanphx/json-patch/v5 v5.6.0 github.com/fatih/structs v1.1.0 github.com/gliderlabs/ssh v0.3.5 - github.com/go-sql-driver/mysql v1.7.0 + github.com/go-sql-driver/mysql v1.7.1 github.com/gofiber/fiber/v2 v2.44.0 github.com/gofiber/helmet/v2 v2.2.26 github.com/gofiber/template v1.8.1 diff --git a/go.sum b/go.sum index b04c8b62..7e698045 100644 --- a/go.sum +++ b/go.sum @@ -162,8 +162,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= -github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= +github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= From e638fa68634af9b0b8d2b3bf70a7180d2146f868 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 May 2023 03:58:06 +0000 Subject: [PATCH 30/40] Bump github.com/valyala/fasthttp from 1.46.0 to 1.47.0 Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp) from 1.46.0 to 1.47.0. - [Release notes](https://github.com/valyala/fasthttp/releases) - [Commits](https://github.com/valyala/fasthttp/compare/v1.46.0...v1.47.0) --- updated-dependencies: - dependency-name: github.com/valyala/fasthttp dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fa0d6ffc..3ebe9d42 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/satori/go.uuid v1.2.0 github.com/sirupsen/logrus v1.9.0 github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c - github.com/valyala/fasthttp v1.46.0 + github.com/valyala/fasthttp v1.47.0 golang.org/x/crypto v0.8.0 golang.org/x/mod v0.10.0 golang.org/x/oauth2 v0.7.0 diff --git a/go.sum b/go.sum index b04c8b62..5ac843be 100644 --- a/go.sum +++ b/go.sum @@ -470,8 +470,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.41.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= github.com/valyala/fasthttp v1.45.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= -github.com/valyala/fasthttp v1.46.0 h1:6ZRhrFg8zBXTRYY6vdzbFhqsBd7FVv123pV2m9V87U4= -github.com/valyala/fasthttp v1.46.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= +github.com/valyala/fasthttp v1.47.0 h1:y7moDoxYzMooFpT5aHgNgVOQDrS3qlkfiP9mDtGGK9c= +github.com/valyala/fasthttp v1.47.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/yosssi/ace v0.0.5/go.mod h1:ALfIzm2vT7t5ZE7uoIZqF3TQ7SAOyupFZnkrF5id+K0= From afd9e2f0b3be932a9d845118ffaa5e73550224e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 May 2023 03:58:11 +0000 Subject: [PATCH 31/40] Bump golang.org/x/term from 0.7.0 to 0.8.0 Bumps [golang.org/x/term](https://github.com/golang/term) from 0.7.0 to 0.8.0. - [Commits](https://github.com/golang/term/compare/v0.7.0...v0.8.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index fa0d6ffc..25035593 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( golang.org/x/crypto v0.8.0 golang.org/x/mod v0.10.0 golang.org/x/oauth2 v0.7.0 - golang.org/x/term v0.7.0 + golang.org/x/term v0.8.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -63,7 +63,7 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect golang.org/x/net v0.9.0 // indirect - golang.org/x/sys v0.7.0 // indirect + golang.org/x/sys v0.8.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.0 // indirect ) diff --git a/go.sum b/go.sum index b04c8b62..6e71a518 100644 --- a/go.sum +++ b/go.sum @@ -743,16 +743,17 @@ golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 8667e59c03007aa61b5ccb960373dad9fc61dd54 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 May 2023 11:30:01 +0000 Subject: [PATCH 32/40] Bump golang.org/x/oauth2 from 0.7.0 to 0.8.0 Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.7.0 to 0.8.0. - [Commits](https://github.com/golang/oauth2/compare/v0.7.0...v0.8.0) --- updated-dependencies: - dependency-name: golang.org/x/oauth2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 88f83e58..a8ad5b8a 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/valyala/fasthttp v1.47.0 golang.org/x/crypto v0.8.0 golang.org/x/mod v0.10.0 - golang.org/x/oauth2 v0.7.0 + golang.org/x/oauth2 v0.8.0 golang.org/x/term v0.8.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -62,7 +62,7 @@ require ( github.com/tinylib/msgp v1.1.8 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - golang.org/x/net v0.9.0 // indirect + golang.org/x/net v0.10.0 // indirect golang.org/x/sys v0.8.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.0 // indirect diff --git a/go.sum b/go.sum index ba728131..d23849cf 100644 --- a/go.sum +++ b/go.sum @@ -617,8 +617,8 @@ golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -642,8 +642,8 @@ golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= -golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g= -golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= 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= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 3b865163b1e1dcfa3439942acb18b27cbec73ffd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 May 2023 11:30:03 +0000 Subject: [PATCH 33/40] Bump golang.org/x/crypto from 0.8.0 to 0.9.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.8.0 to 0.9.0. - [Commits](https://github.com/golang/crypto/compare/v0.8.0...v0.9.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 88f83e58..16a1d722 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/sirupsen/logrus v1.9.0 github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c github.com/valyala/fasthttp v1.47.0 - golang.org/x/crypto v0.8.0 + golang.org/x/crypto v0.9.0 golang.org/x/mod v0.10.0 golang.org/x/oauth2 v0.7.0 golang.org/x/term v0.8.0 @@ -62,7 +62,7 @@ require ( github.com/tinylib/msgp v1.1.8 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - golang.org/x/net v0.9.0 // indirect + golang.org/x/net v0.10.0 // indirect golang.org/x/sys v0.8.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.0 // indirect diff --git a/go.sum b/go.sum index ba728131..723fba76 100644 --- a/go.sum +++ b/go.sum @@ -514,8 +514,8 @@ golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= -golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -617,8 +617,8 @@ golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= From 9eab5ef9710b11dbe376d6850e89e8c40e2db232 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 May 2023 11:30:07 +0000 Subject: [PATCH 34/40] Bump github.com/sirupsen/logrus from 1.9.0 to 1.9.2 Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.9.0 to 1.9.2. - [Release notes](https://github.com/sirupsen/logrus/releases) - [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md) - [Commits](https://github.com/sirupsen/logrus/compare/v1.9.0...v1.9.2) --- updated-dependencies: - dependency-name: github.com/sirupsen/logrus dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 88f83e58..d4fc7315 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/pires/go-proxyproto v0.7.0 github.com/pkg/errors v0.9.1 github.com/satori/go.uuid v1.2.0 - github.com/sirupsen/logrus v1.9.0 + github.com/sirupsen/logrus v1.9.2 github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c github.com/valyala/fasthttp v1.47.0 golang.org/x/crypto v0.8.0 diff --git a/go.sum b/go.sum index ba728131..e4b38d01 100644 --- a/go.sum +++ b/go.sum @@ -437,8 +437,9 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y= +github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= From 14298956ed6d15f1fd1039c8f843868825232bb9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 May 2023 11:30:13 +0000 Subject: [PATCH 35/40] Bump github.com/gofiber/fiber/v2 from 2.44.0 to 2.46.0 Bumps [github.com/gofiber/fiber/v2](https://github.com/gofiber/fiber) from 2.44.0 to 2.46.0. - [Release notes](https://github.com/gofiber/fiber/releases) - [Commits](https://github.com/gofiber/fiber/compare/v2.44.0...v2.46.0) --- updated-dependencies: - dependency-name: github.com/gofiber/fiber/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 88f83e58..a67ab346 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/fatih/structs v1.1.0 github.com/gliderlabs/ssh v0.3.5 github.com/go-sql-driver/mysql v1.7.1 - github.com/gofiber/fiber/v2 v2.44.0 + github.com/gofiber/fiber/v2 v2.46.0 github.com/gofiber/helmet/v2 v2.2.26 github.com/gofiber/template v1.8.1 github.com/golang-jwt/jwt v3.2.2+incompatible diff --git a/go.sum b/go.sum index ba728131..14f1504b 100644 --- a/go.sum +++ b/go.sum @@ -168,8 +168,9 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofiber/fiber/v2 v2.44.0 h1:Z90bEvPcJM5GFJnu1py0E1ojoerkyew3iiNJ78MQCM8= github.com/gofiber/fiber/v2 v2.44.0/go.mod h1:VTMtb/au8g01iqvHyaCzftuM/xmZgKOZCtFzz6CdV9w= +github.com/gofiber/fiber/v2 v2.46.0 h1:wkkWotblsGVlLjXj2dpgKQAYHtXumsK/HyFugQM68Ns= +github.com/gofiber/fiber/v2 v2.46.0/go.mod h1:DNl0/c37WLe0g92U6lx1VMQuxGUQY5V7EIaVoEsUffc= github.com/gofiber/helmet/v2 v2.2.26 h1:KreQVUpCIGppPQ6Yt8qQMaIR4fVXMnvBdsda0dJSsO8= github.com/gofiber/helmet/v2 v2.2.26/go.mod h1:XE0DF4cgf0M5xIt7qyAK5zOi8jJblhxfSDv9DAmEEQo= github.com/gofiber/template v1.8.1 h1:KLnNtXqH3LTzquU0NsLMqX3YGd3pD562UhSNaIca5HI= From 50615a1c0da0b153442347a873d7be8295643c12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 May 2023 11:32:42 +0000 Subject: [PATCH 36/40] Bump github.com/coreos/go-oidc/v3 from 3.5.0 to 3.6.0 Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc) from 3.5.0 to 3.6.0. - [Release notes](https://github.com/coreos/go-oidc/releases) - [Commits](https://github.com/coreos/go-oidc/compare/v3.5.0...v3.6.0) --- updated-dependencies: - dependency-name: github.com/coreos/go-oidc/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index cff175c7..6b549aa1 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( github.com/Songmu/prompter v0.5.1 - github.com/coreos/go-oidc/v3 v3.5.0 + github.com/coreos/go-oidc/v3 v3.6.0 github.com/evanphx/json-patch/v5 v5.6.0 github.com/fatih/structs v1.1.0 github.com/gliderlabs/ssh v0.3.5 diff --git a/go.sum b/go.sum index 8085573f..7400171b 100644 --- a/go.sum +++ b/go.sum @@ -41,7 +41,6 @@ cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6m cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= -cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= 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.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= @@ -111,8 +110,8 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211130200136-a8f946100490/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/coreos/go-oidc/v3 v3.4.0/go.mod h1:eHUXhZtXPQLgEaDrOVTgwbgmz1xGOkJNye6h3zkD2Pw= -github.com/coreos/go-oidc/v3 v3.5.0 h1:VxKtbccHZxs8juq7RdJntSqtXFtde9YpNpGn0yqgEHw= -github.com/coreos/go-oidc/v3 v3.5.0/go.mod h1:ecXRtV4romGPeO6ieExAsUK9cb/3fp9hXNz1tlv8PIM= +github.com/coreos/go-oidc/v3 v3.6.0 h1:AKVxfYw1Gmkn/w96z0DbT/B/xFnzTd3MkZvWLjF4n/o= +github.com/coreos/go-oidc/v3 v3.6.0/go.mod h1:ZpHUsHBucTUj6WOkrP4E20UPynbLZzhTQ1XKCXkxyPc= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= @@ -614,7 +613,6 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= @@ -641,7 +639,6 @@ golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 6802dbca04ea0934eec63f517b5cbb0615496c1f Mon Sep 17 00:00:00 2001 From: zachmann Date: Tue, 23 May 2023 13:52:31 +0200 Subject: [PATCH 37/40] [docu] add server_profiles to example config --- config/example-config.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/example-config.yaml b/config/example-config.yaml index d2e3b263..2f27cc6c 100644 --- a/config/example-config.yaml +++ b/config/example-config.yaml @@ -193,6 +193,14 @@ features: - /etc/ssh/ssh_host_ed25519_key - /etc/ssh/ssh_host_rsa_key + # Settings related to server profiles and templates + server_profiles: + enabled: true + # group names and passwords; those are used by an entity to add, update, delete profiles on this server, the '_' + # group is the default group managed by the server admin + groups: + # _: admin + # The list of supported providers providers: - issuer: "https://example.provider.com/" From 2427dded8522403959207ee59315c4bdf3a3c144 Mon Sep 17 00:00:00 2001 From: zachmann Date: Tue, 23 May 2023 17:25:08 +0200 Subject: [PATCH 38/40] replace uuid lib --- go.mod | 2 +- go.sum | 4 +-- internal/db/profilerepo/add.go | 24 ++++++++++++----- internal/db/profilerepo/delete.go | 2 +- internal/db/profilerepo/get.go | 2 +- internal/db/profilerepo/update.go | 2 +- .../endpoints/profiles/profileEndpoint.go | 2 +- internal/mytoken/mytokenHandler.go | 23 ++++++++-------- internal/mytoken/pkg/mtid/mtid.go | 9 ++++--- internal/mytoken/pkg/mytoken.go | 10 ++++--- internal/oidc/authcode/authcode.go | 27 ++++++++++--------- internal/utils/ctxutils/id.go | 2 +- 12 files changed, 64 insertions(+), 45 deletions(-) diff --git a/go.mod b/go.mod index 95fb1c0c..2edbd964 100644 --- a/go.mod +++ b/go.mod @@ -12,6 +12,7 @@ require ( github.com/gofiber/fiber/v2 v2.46.0 github.com/gofiber/helmet/v2 v2.2.26 github.com/gofiber/template v1.8.1 + github.com/gofrs/uuid v4.4.0+incompatible github.com/golang-jwt/jwt v3.2.2+incompatible github.com/ip2location/ip2location-go v8.3.0+incompatible github.com/jinzhu/copier v0.3.5 @@ -23,7 +24,6 @@ require ( github.com/patrickmn/go-cache v2.1.0+incompatible github.com/pires/go-proxyproto v0.7.0 github.com/pkg/errors v0.9.1 - github.com/satori/go.uuid v1.2.0 github.com/sirupsen/logrus v1.9.2 github.com/urfave/cli/v2 v2.3.1-0.20211205195634-e8d81738896c github.com/valyala/fasthttp v1.47.0 diff --git a/go.sum b/go.sum index a0178314..d2af2665 100644 --- a/go.sum +++ b/go.sum @@ -174,6 +174,8 @@ github.com/gofiber/helmet/v2 v2.2.26 h1:KreQVUpCIGppPQ6Yt8qQMaIR4fVXMnvBdsda0dJS github.com/gofiber/helmet/v2 v2.2.26/go.mod h1:XE0DF4cgf0M5xIt7qyAK5zOi8jJblhxfSDv9DAmEEQo= github.com/gofiber/template v1.8.1 h1:KLnNtXqH3LTzquU0NsLMqX3YGd3pD562UhSNaIca5HI= github.com/gofiber/template v1.8.1/go.mod h1:+2x8bRo2TAXnqp0RUN2MdyKshUi+BulPoUCOHstFLqE= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= +github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= @@ -426,8 +428,6 @@ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig= -github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94 h1:rmMl4fXJhKMNWl+K+r/fq4FbbKI+Ia2m9hYBLm2h4G4= github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94/go.mod h1:90zrgN3D/WJsDd1iXHT96alCoN2KJo6/4x1DZC3wZs8= github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d/go.mod h1:Gy+0tqhJvgGlqnTF8CVGP0AaGRjwBtXs/a5PA0Y3+A4= diff --git a/internal/db/profilerepo/add.go b/internal/db/profilerepo/add.go index c592731c..b24a29e1 100644 --- a/internal/db/profilerepo/add.go +++ b/internal/db/profilerepo/add.go @@ -3,9 +3,9 @@ package profilerepo import ( "encoding/json" + "github.com/gofrs/uuid" "github.com/jmoiron/sqlx" "github.com/pkg/errors" - uuid "github.com/satori/go.uuid" log "github.com/sirupsen/logrus" "github.com/oidc-mytoken/server/internal/db" @@ -15,10 +15,13 @@ import ( func AddProfile( rlog log.Ext1FieldLogger, tx *sqlx.Tx, group, name string, payload json.RawMessage, ) error { - id := uuid.NewV4() + id, err := uuid.NewV4() + if err != nil { + return errors.WithStack(err) + } return db.RunWithinTransaction( rlog, tx, func(tx *sqlx.Tx) error { - _, err := tx.Exec(`CALL Profiles_InsertProfiles(?,?,?,?)`, id, group, name, payload) + _, err = tx.Exec(`CALL Profiles_InsertProfiles(?,?,?,?)`, id, group, name, payload) return errors.WithStack(err) }, ) @@ -28,7 +31,10 @@ func AddProfile( func AddCapabilities( rlog log.Ext1FieldLogger, tx *sqlx.Tx, group, name string, payload json.RawMessage, ) error { - id := uuid.NewV4() + id, err := uuid.NewV4() + if err != nil { + return errors.WithStack(err) + } return db.RunWithinTransaction( rlog, tx, func(tx *sqlx.Tx) error { _, err := tx.Exec(`CALL Profiles_InsertCapabilities(?,?,?,?)`, id, group, name, payload) @@ -41,7 +47,10 @@ func AddCapabilities( func AddRestrictions( rlog log.Ext1FieldLogger, tx *sqlx.Tx, group, name string, payload json.RawMessage, ) error { - id := uuid.NewV4() + id, err := uuid.NewV4() + if err != nil { + return errors.WithStack(err) + } return db.RunWithinTransaction( rlog, tx, func(tx *sqlx.Tx) error { _, err := tx.Exec(`CALL Profiles_InsertRestrictions(?,?,?,?)`, id, group, name, payload) @@ -54,7 +63,10 @@ func AddRestrictions( func AddRotation( rlog log.Ext1FieldLogger, tx *sqlx.Tx, group, name string, payload json.RawMessage, ) error { - id := uuid.NewV4() + id, err := uuid.NewV4() + if err != nil { + return errors.WithStack(err) + } return db.RunWithinTransaction( rlog, tx, func(tx *sqlx.Tx) error { _, err := tx.Exec(`CALL Profiles_InsertRotations(?,?,?,?)`, id, group, name, payload) diff --git a/internal/db/profilerepo/delete.go b/internal/db/profilerepo/delete.go index 0366009e..2473afcf 100644 --- a/internal/db/profilerepo/delete.go +++ b/internal/db/profilerepo/delete.go @@ -1,9 +1,9 @@ package profilerepo import ( + "github.com/gofrs/uuid" "github.com/jmoiron/sqlx" "github.com/pkg/errors" - uuid "github.com/satori/go.uuid" log "github.com/sirupsen/logrus" "github.com/oidc-mytoken/server/internal/db" diff --git a/internal/db/profilerepo/get.go b/internal/db/profilerepo/get.go index 4d000a68..dbe109b7 100644 --- a/internal/db/profilerepo/get.go +++ b/internal/db/profilerepo/get.go @@ -3,11 +3,11 @@ package profilerepo import ( "encoding/json" + "github.com/gofrs/uuid" "github.com/jmoiron/sqlx" "github.com/oidc-mytoken/api/v0" "github.com/oidc-mytoken/utils/utils/profile" "github.com/pkg/errors" - uuid "github.com/satori/go.uuid" log "github.com/sirupsen/logrus" "github.com/oidc-mytoken/server/internal/db" diff --git a/internal/db/profilerepo/update.go b/internal/db/profilerepo/update.go index 6d463b70..adb3561e 100644 --- a/internal/db/profilerepo/update.go +++ b/internal/db/profilerepo/update.go @@ -3,9 +3,9 @@ package profilerepo import ( "encoding/json" + "github.com/gofrs/uuid" "github.com/jmoiron/sqlx" "github.com/pkg/errors" - uuid "github.com/satori/go.uuid" log "github.com/sirupsen/logrus" "github.com/oidc-mytoken/server/internal/db" diff --git a/internal/endpoints/profiles/profileEndpoint.go b/internal/endpoints/profiles/profileEndpoint.go index 4702fc1c..63470451 100644 --- a/internal/endpoints/profiles/profileEndpoint.go +++ b/internal/endpoints/profiles/profileEndpoint.go @@ -4,10 +4,10 @@ import ( "encoding/json" "github.com/gofiber/fiber/v2" + "github.com/gofrs/uuid" "github.com/jmoiron/sqlx" "github.com/oidc-mytoken/api/v0" "github.com/pkg/errors" - uuid "github.com/satori/go.uuid" log "github.com/sirupsen/logrus" "github.com/oidc-mytoken/server/internal/db/profilerepo" diff --git a/internal/mytoken/mytokenHandler.go b/internal/mytoken/mytokenHandler.go index b7898b71..47b7d709 100644 --- a/internal/mytoken/mytokenHandler.go +++ b/internal/mytoken/mytokenHandler.go @@ -258,24 +258,25 @@ func createMytokenEntry( if req.Rotation != nil { rot = &req.Rotation.Rotation } - ste := mytokenrepo.NewMytokenEntry( - mytoken.NewMytoken( - parent.OIDCSubject, parent.OIDCIssuer, req.GeneralMytokenRequest.Name, r, c, rot, - parent.AuthTime, - ), - req.GeneralMytokenRequest.Name, networkData, + mt, err := mytoken.NewMytoken( + parent.OIDCSubject, parent.OIDCIssuer, req.GeneralMytokenRequest.Name, r, c, rot, + parent.AuthTime, ) + if err != nil { + return nil, model.ErrorToInternalServerErrorResponse(err) + } + mte := mytokenrepo.NewMytokenEntry(mt, req.GeneralMytokenRequest.Name, networkData) encryptionKey, _, err := encryptionkeyrepo.GetEncryptionKey(rlog, nil, parent.ID, req.Mytoken.JWT) if err != nil { rlog.WithError(err).Error() - return ste, model.ErrorToInternalServerErrorResponse(err) + return mte, model.ErrorToInternalServerErrorResponse(err) } - if err = ste.SetRefreshToken(rtID, encryptionKey); err != nil { + if err = mte.SetRefreshToken(rtID, encryptionKey); err != nil { rlog.WithError(err).Error() - return ste, model.ErrorToInternalServerErrorResponse(err) + return mte, model.ErrorToInternalServerErrorResponse(err) } - ste.ParentID = parent.ID - return ste, nil + mte.ParentID = parent.ID + return mte, nil } // RevokeMytoken revokes a Mytoken diff --git a/internal/mytoken/pkg/mtid/mtid.go b/internal/mytoken/pkg/mtid/mtid.go index c79f3149..61eefc4d 100644 --- a/internal/mytoken/pkg/mtid/mtid.go +++ b/internal/mytoken/pkg/mtid/mtid.go @@ -4,8 +4,8 @@ import ( "database/sql/driver" "encoding/json" + "github.com/gofrs/uuid" "github.com/pkg/errors" - uuid "github.com/satori/go.uuid" "github.com/oidc-mytoken/server/internal/db" "github.com/oidc-mytoken/server/internal/utils/hashutils" @@ -18,10 +18,11 @@ type MTID struct { } // New creates a new MTID -func New() MTID { +func New() (MTID, error) { + uuid, err := uuid.NewV4() return MTID{ - UUID: uuid.NewV4(), - } + UUID: uuid, + }, errors.WithStack(err) } // Valid checks if the MTID is valid diff --git a/internal/mytoken/pkg/mytoken.go b/internal/mytoken/pkg/mytoken.go index f41d0f0c..c24955a7 100644 --- a/internal/mytoken/pkg/mytoken.go +++ b/internal/mytoken/pkg/mytoken.go @@ -92,8 +92,12 @@ func (mt *Mytoken) VerifyCapabilities(required ...api.Capability) bool { func NewMytoken( oidcSub, oidcIss, name string, r restrictions.Restrictions, c api.Capabilities, rot *api.Rotation, authTime unixtime.UnixTime, -) *Mytoken { +) (*Mytoken, error) { now := unixtime.Now() + id, err := mtid.New() + if err != nil { + return nil, err + } mt := &Mytoken{ Mytoken: api.Mytoken{ Version: api.TokenVer, @@ -107,7 +111,7 @@ func NewMytoken( OIDCSubject: oidcSub, Capabilities: c, }, - ID: mtid.New(), + ID: id, IssuedAt: now, NotBefore: now, AuthTime: authTime, @@ -125,7 +129,7 @@ func NewMytoken( mt.NotBefore = nbf } } - return mt + return mt, nil } // ExpiresIn returns the amount of seconds in which this token expires diff --git a/internal/oidc/authcode/authcode.go b/internal/oidc/authcode/authcode.go index dfa1559e..ba33a4c7 100644 --- a/internal/oidc/authcode/authcode.go +++ b/internal/oidc/authcode/authcode.go @@ -337,23 +337,24 @@ func createMytokenEntry( if authFlowInfo.Rotation != nil { rot = &authFlowInfo.Rotation.Rotation } - mte := mytokenrepo.NewMytokenEntry( - mytoken.NewMytoken( - oidcSub, - authFlowInfo.Issuer, - authFlowInfo.Name, - authFlowInfo.Restrictions.Restrictions, - authFlowInfo.Capabilities.Capabilities, - rot, - unixtime.Now(), - ), - authFlowInfo.Name, networkData, + mt, err := mytoken.NewMytoken( + oidcSub, + authFlowInfo.Issuer, + authFlowInfo.Name, + authFlowInfo.Restrictions.Restrictions, + authFlowInfo.Capabilities.Capabilities, + rot, + unixtime.Now(), ) + if err != nil { + return nil, err + } + mte := mytokenrepo.NewMytokenEntry(mt, authFlowInfo.Name, networkData) mte.Token.AuthTime = unixtime.Now() - if err := mte.InitRefreshToken(token.RefreshToken); err != nil { + if err = mte.InitRefreshToken(token.RefreshToken); err != nil { return nil, err } - if err := mte.Store(rlog, tx, "Used grant_type oidc_flow authorization_code"); err != nil { + if err = mte.Store(rlog, tx, "Used grant_type oidc_flow authorization_code"); err != nil { return nil, err } return mte, nil diff --git a/internal/utils/ctxutils/id.go b/internal/utils/ctxutils/id.go index 724a8477..57608414 100644 --- a/internal/utils/ctxutils/id.go +++ b/internal/utils/ctxutils/id.go @@ -4,8 +4,8 @@ import ( "encoding/json" "github.com/gofiber/fiber/v2" + "github.com/gofrs/uuid" "github.com/pkg/errors" - uuid "github.com/satori/go.uuid" ) type idUnmarshal struct { From 266fda100399686dd7e793023d696dda859b8882 Mon Sep 17 00:00:00 2001 From: zachmann Date: Tue, 23 May 2023 17:30:56 +0200 Subject: [PATCH 39/40] fix tests --- internal/db/dbrepo/mytokenrepo/mytoken_test.go | 5 +++-- internal/mytoken/pkg/mtid/mtid_test.go | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/db/dbrepo/mytokenrepo/mytoken_test.go b/internal/db/dbrepo/mytokenrepo/mytoken_test.go index 0db9c5f1..0f26382a 100644 --- a/internal/db/dbrepo/mytokenrepo/mytoken_test.go +++ b/internal/db/dbrepo/mytokenrepo/mytoken_test.go @@ -7,7 +7,8 @@ import ( ) func TestMytokenEntry_Root(t *testing.T) { - parentRoot := mtid.New() + parentRoot, _ := mtid.New() + parentID, _ := mtid.New() tests := []struct { name string mt MytokenEntry @@ -28,7 +29,7 @@ func TestMytokenEntry_Root(t *testing.T) { { name: "HasParentAndRoot", mt: MytokenEntry{ - ParentID: mtid.New(), + ParentID: parentID, }, expected: false, }, diff --git a/internal/mytoken/pkg/mtid/mtid_test.go b/internal/mytoken/pkg/mtid/mtid_test.go index 7c75bebb..f388e5c7 100644 --- a/internal/mytoken/pkg/mtid/mtid_test.go +++ b/internal/mytoken/pkg/mtid/mtid_test.go @@ -5,6 +5,7 @@ import ( ) func TestMTID_HashValid(t *testing.T) { + id, _ := New() tests := []struct { name string id MTID @@ -17,7 +18,7 @@ func TestMTID_HashValid(t *testing.T) { }, { name: "Valid", - id: New(), + id: id, expected: true, }, { @@ -43,6 +44,7 @@ func TestMTID_HashValid(t *testing.T) { } } func TestMTID_Valid(t *testing.T) { + id, _ := New() tests := []struct { name string id MTID @@ -55,7 +57,7 @@ func TestMTID_Valid(t *testing.T) { }, { name: "Valid", - id: New(), + id: id, expected: true, }, { From 57af978ccf1ef8ee2c93823cd47ac5af03e9f2fa Mon Sep 17 00:00:00 2001 From: zachmann Date: Tue, 23 May 2023 17:34:32 +0200 Subject: [PATCH 40/40] update changelog --- CHANGELOG.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 181a6ef8..f16b4499 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,18 +39,26 @@ - Fixed a bug where wrong dates where returned if the database used a different timezone than UTC. - Fixed a bug in `mytoken-migratedb` were empty databases could not be setup. +### Security Fixes + +- Replaced the uuid library; the old library had a security flaw CVE-2021-3538 + ### Dependencies -- Bump golang.org/x/term from 0.5.0 to 0.6.0 -- Bump github.com/valyala/fasthttp from 1.44.0 to 1.45.0 +- Bump golang.org/x/term from 0.5.0 to 0.8.0 +- Bump github.com/valyala/fasthttp from 1.44.0 to 1.47.0 - Bump golang.org/x/net from 0.6.0 to 0.7.0 -- Bump golang.org/x/crypto from 0.6.0 to 0.7.0 -- Bump golang.org/x/oauth2 from 0.5.0 to 0.6.0 +- Bump golang.org/x/crypto from 0.6.0 to 0.9.0 +- Bump golang.org/x/oauth2 from 0.5.0 to 0.8.0 - Bump golang.org/x/mod from 0.8.0 to 0.9.0 - Bump github.com/gofiber/helmet/v2 from 2.2.24 to 2.2.25 - Bump github.com/gofiber/template from 1.7.5 to 1.8.0 -- Bump github.com/gofiber/fiber/v2 from 2.42.0 to 2.43.0 +- Bump github.com/gofiber/fiber/v2 from 2.42.0 to 2.46.0 - Bump github.com/pires/go-proxyproto from 0.6.2 to 0.7.0 +- Bump github.com/go-sql-driver/mysql from 1.7.0 to 1.7.1 +- Bump github.com/sirupsen/logrus from 1.9.0 to 1.9.2 +- Bump github.com/coreos/go-oidc/v3 from 3.5.0 to 3.6.0 +- Replaced github.com/satori/go.uuid with github.com/gofrs/uuid ## mytoken 0.7.2