diff --git a/Makefile b/Makefile index 79ddd6bf..11864e24 100755 --- a/Makefile +++ b/Makefile @@ -141,6 +141,8 @@ push-github: gen-swagger: swag init --parseDependency --parseInternal -g handler.go -d internal/api -o internal/api/v1/docs python3 scripts/fix-swagger-json.py + # we don't need this + rm internal/api/v1/docs/docs.go gen-swagger-markdown: gen-swagger swagger generate markdown -f internal/api/v1/docs/swagger.yaml --skip-validation --output ${DOCS_DIR}/src/API.md diff --git a/agent/go.sum b/agent/go.sum index c405d70d..d6f9a0b2 100644 --- a/agent/go.sum +++ b/agent/go.sum @@ -314,10 +314,10 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T google.golang.org/genproto v0.0.0-20250811230008-5f3141c8851a h1:V8Zj/61zlL7B+VH151iV5hJlUnYc3fUNTEhLtyr9Kzc= google.golang.org/genproto/googleapis/api v0.0.0-20250804133106-a7a43d27e69b h1:ULiyYQ0FdsJhwwZUwbaXpZF5yUE3h+RA+gxvBu37ucc= google.golang.org/genproto/googleapis/api v0.0.0-20250804133106-a7a43d27e69b/go.mod h1:oDOGiMSXHL4sDTJvFvIB9nRQCGdLP1o/iVaqQK8zB+M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250811230008-5f3141c8851a h1:tPE/Kp+x9dMSwUm/uM0JKK0IfdiJkwAbSMSeZBXXJXc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250811230008-5f3141c8851a/go.mod h1:gw1tLEfykwDz2ET4a12jcXt4couGAm7IwsVaTy0Sflo= -google.golang.org/grpc v1.74.2 h1:WoosgB65DlWVC9FqI82dGsZhWFNBSLjQ84bjROOpMu4= -google.golang.org/grpc v1.74.2/go.mod h1:CtQ+BGjaAIXHs/5YS3i473GqwBBa1zGQNevxdeBEXrM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 h1:pmJpJEvT846VzausCQ5d7KreSROcDqmO388w5YbnltA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1/go.mod h1:GmFNa4BdJZ2a8G+wCe9Bg3wwThLrJun751XstdJt5Og= +google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= +google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/go.mod b/go.mod index e822e491..73fdf8e9 100644 --- a/go.mod +++ b/go.mod @@ -213,7 +213,7 @@ require ( golang.org/x/tools v0.36.0 // indirect google.golang.org/api v0.248.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 // indirect - google.golang.org/grpc v1.75.0 + google.golang.org/grpc v1.75.0 // indirect google.golang.org/protobuf v1.36.8 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/ns1/ns1-go.v2 v2.15.0 // indirect @@ -222,16 +222,12 @@ require ( ) require ( - github.com/containerd/containerd/v2 v2.1.4 - github.com/containerd/nerdctl/v2 v2.1.3 github.com/gin-gonic/gin v1.10.1 - github.com/swaggo/swag v1.16.6 github.com/yusing/ds v0.1.0 ) require ( - github.com/KyleBanks/depth v1.2.1 // indirect - github.com/Microsoft/hcsshim v0.13.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 // indirect github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.11 // indirect github.com/alibabacloud-go/debug v1.0.1 // indirect @@ -243,53 +239,25 @@ require ( github.com/bytedance/sonic/loader v0.3.0 // indirect github.com/clbanning/mxj/v2 v2.7.0 // indirect github.com/cloudwego/base64x v0.1.6 // indirect - github.com/containerd/cgroups/v3 v3.0.5 // indirect - github.com/containerd/containerd/api v1.9.0 // indirect - github.com/containerd/continuity v0.4.5 // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect - github.com/containerd/fifo v1.1.0 // indirect - github.com/containerd/go-cni v1.1.13 // indirect github.com/containerd/log v0.1.0 // indirect - github.com/containerd/platforms v1.0.0-rc.1 // indirect - github.com/containerd/plugin v1.0.0 // indirect - github.com/containerd/ttrpc v1.2.7 // indirect - github.com/containerd/typeurl/v2 v2.2.3 // indirect - github.com/containernetworking/cni v1.3.0 // indirect github.com/dnsimple/dnsimple-go/v4 v4.0.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/gin-contrib/sse v1.1.0 // indirect github.com/go-acme/alidns-20150109/v4 v4.5.11 // indirect github.com/go-acme/tencentclouddnspod v1.0.1208 // indirect - github.com/go-openapi/jsonpointer v0.21.2 // indirect - github.com/go-openapi/jsonreference v0.21.0 // indirect - github.com/go-openapi/spec v0.21.0 // indirect - github.com/go-openapi/swag v0.23.1 // indirect github.com/goccy/go-json v0.10.5 // indirect - github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect - github.com/google/go-cmp v0.7.0 // indirect - github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.18.0 // indirect github.com/klauspost/cpuid/v2 v2.3.0 // indirect - github.com/mailru/easyjson v0.9.0 // indirect - github.com/moby/locker v1.0.1 // indirect github.com/moby/sys/atomicwriter v0.1.0 // indirect - github.com/moby/sys/mountinfo v0.7.2 // indirect - github.com/moby/sys/sequential v0.6.0 // indirect - github.com/moby/sys/signal v0.7.1 // indirect - github.com/moby/sys/user v0.4.0 // indirect - github.com/moby/sys/userns v0.1.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/namedotcom/go/v4 v4.0.2 // indirect github.com/nrdcg/oci-go-sdk/common/v1065 v1065.99.1 // indirect github.com/nrdcg/oci-go-sdk/dns/v1065 v1065.99.1 // indirect - github.com/opencontainers/runtime-spec v1.2.1 // indirect - github.com/opencontainers/selinux v1.12.0 // indirect - github.com/petermattis/goid v0.0.0-20250813065127-a731cc31b4fe // indirect - github.com/sasha-s/go-deadlock v0.3.5 // indirect github.com/selectel/go-selvpcclient/v4 v4.1.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.3.0 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 // indirect golang.org/x/arch v0.20.0 // indirect google.golang.org/genproto v0.0.0-20250811230008-5f3141c8851a // indirect diff --git a/go.sum b/go.sum index 108d0e45..4702d5f4 100644 --- a/go.sum +++ b/go.sum @@ -601,8 +601,6 @@ cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcP dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AdamSLevy/jsonrpc2/v14 v14.1.0 h1:Dy3M9aegiI7d7PF1LUdjbVigJReo+QOceYsMyFh9qoE= github.com/AdamSLevy/jsonrpc2/v14 v14.1.0/go.mod h1:ZakZtbCXxCz82NJvq7MoREtiQesnDfrtF6RFUGzQfLo= github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU= @@ -637,12 +635,8 @@ github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXY github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= -github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/Microsoft/hcsshim v0.13.0 h1:/BcXOiS6Qi7N9XqUcv27vkIuVOkBEcWstd2pMlWSeaA= -github.com/Microsoft/hcsshim v0.13.0/go.mod h1:9KWJ/8DgU+QzYGupX4tzMhRQE8h6w90lH6HAaclpEok= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87 h1:xPMsUicZ3iosVPSIP7bW5EcGUzjiiMl1OYTe14y/R24= github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87/go.mod h1:iGLljf5n9GjT6kc0HBvyI1nOKnGQbNB66VzSNbK5iks= @@ -824,36 +818,12 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/containerd/cgroups/v3 v3.0.5 h1:44na7Ud+VwyE7LIoJ8JTNQOa549a8543BmzaJHo6Bzo= -github.com/containerd/cgroups/v3 v3.0.5/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= -github.com/containerd/containerd/api v1.9.0 h1:HZ/licowTRazus+wt9fM6r/9BQO7S0vD5lMcWspGIg0= -github.com/containerd/containerd/api v1.9.0/go.mod h1:GhghKFmTR3hNtyznBoQ0EMWr9ju5AqHjcZPsSpTKutI= -github.com/containerd/containerd/v2 v2.1.4 h1:/hXWjiSFd6ftrBOBGfAZ6T30LJcx1dBjdKEeI8xucKQ= -github.com/containerd/containerd/v2 v2.1.4/go.mod h1:8C5QV9djwsYDNhxfTCFjWtTBZrqjditQ4/ghHSYjnHM= -github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4= -github.com/containerd/continuity v0.4.5/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= github.com/containerd/errdefs/pkg v0.3.0/go.mod h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmCQvQ4GpJHEqRLVk= -github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY= -github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o= -github.com/containerd/go-cni v1.1.13 h1:eFSGOKlhoYNxpJ51KRIMHZNlg5UgocXEIEBGkY7Hnis= -github.com/containerd/go-cni v1.1.13/go.mod h1:nTieub0XDRmvCZ9VI/SBG6PyqT95N4FIhxsauF1vSBI= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/containerd/nerdctl/v2 v2.1.3 h1:8QpZrEdTFE0V26kVpeKz8/EyQQfh9VAQTx+PdjSJF1A= -github.com/containerd/nerdctl/v2 v2.1.3/go.mod h1:1Xs+sxCETHjwvNiL80QEzAyGxbWK3FHrNEm4T4nHNBo= -github.com/containerd/platforms v1.0.0-rc.1 h1:83KIq4yy1erSRgOVHNk1HYdPvzdJ5CnsWaRoJX4C41E= -github.com/containerd/platforms v1.0.0-rc.1/go.mod h1:J71L7B+aiM5SdIEqmd9wp6THLVRzJGXfNuWCZCllLA4= -github.com/containerd/plugin v1.0.0 h1:c8Kf1TNl6+e2TtMHZt+39yAPDbouRH9WAToRjex483Y= -github.com/containerd/plugin v1.0.0/go.mod h1:hQfJe5nmWfImiqT1q8Si3jLv3ynMUIBB47bQ+KexvO8= -github.com/containerd/ttrpc v1.2.7 h1:qIrroQvuOL9HQ1X6KHe2ohc7p+HP/0VE6XPU7elJRqQ= -github.com/containerd/ttrpc v1.2.7/go.mod h1:YCXHsb32f+Sq5/72xHubdiJRQY9inL4a4ZQrAbN1q9o= -github.com/containerd/typeurl/v2 v2.2.3 h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40= -github.com/containerd/typeurl/v2 v2.2.3/go.mod h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk= -github.com/containernetworking/cni v1.3.0 h1:v6EpN8RznAZj9765HhXQrtXgX+ECGebEYEmnuFjskwo= -github.com/containernetworking/cni v1.3.0/go.mod h1:Bs8glZjjFfGPHMw6hQu82RUgEPNGEaBb9KS5KtNMnJ4= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -987,14 +957,6 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/go-openapi/jsonpointer v0.21.2 h1:AqQaNADVwq/VnkCmQg6ogE+M3FOsKTytwges0JdwVuA= -github.com/go-openapi/jsonpointer v0.21.2/go.mod h1:50I1STOfbY1ycR8jGz8DaMeLCdXiI6aDteEdRNNzpdk= -github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= -github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= -github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= -github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= -github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZU= -github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0= github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= @@ -1054,8 +1016,6 @@ github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= -github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= @@ -1281,8 +1241,6 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfC github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -1364,8 +1322,6 @@ github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXq github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.4/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= -github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -1424,20 +1380,10 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= -github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= -github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= github.com/moby/sys/atomicwriter v0.1.0 h1:kw5D/EqkBwsBFi0ss9v1VG3wIkVhzGvLklJ+w3A14Sw= github.com/moby/sys/atomicwriter v0.1.0/go.mod h1:Ul8oqv2ZMNHOceF643P6FKPXeCmYtlQMvpizfsSoaWs= -github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg= -github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4= github.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7zgvCU= github.com/moby/sys/sequential v0.6.0/go.mod h1:uyv8EUTrca5PnDsdMGXhZe6CCe8U/UiTWd+lL+7b/Ko= -github.com/moby/sys/signal v0.7.1 h1:PrQxdvxcGijdo6UXXo/lU/TvHUWyPhj7UOpSo8tuvk0= -github.com/moby/sys/signal v0.7.1/go.mod h1:Se1VGehYokAkrSQwL4tDzHvETwUZlnY7S5XtQ50mQp8= -github.com/moby/sys/user v0.4.0 h1:jhcMKit7SA80hivmFJcbB1vqmw//wU61Zdui2eQXuMs= -github.com/moby/sys/user v0.4.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= -github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= -github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ= github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -1516,10 +1462,6 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= -github.com/opencontainers/runtime-spec v1.2.1 h1:S4k4ryNgEpxW1dzyqffOmhI1BHYcjzU8lpJfSlR0xww= -github.com/opencontainers/runtime-spec v1.2.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.12.0 h1:6n5JV4Cf+4y0KNXW48TLj5DwfXpvWlxXplUkdTrmPb8= -github.com/opencontainers/selinux v1.12.0/go.mod h1:BTPX+bjVbWGXw7ZZWUbdENt8w0htPSrlgOOysQaU62U= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE= github.com/oschwald/maxminddb-golang v1.13.1 h1:G3wwjdN9JmIK2o/ermkHM+98oX5fS+k5MbwsmL4MRQE= @@ -1538,9 +1480,6 @@ github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8 github.com/performancecopilot/speed/v4 v4.0.0/go.mod h1:qxrSyuDGrTOWfV+uKRFhfxw6h/4HXRGUiZiufxo49BM= github.com/peterhellberg/link v1.2.0 h1:UA5pg3Gp/E0F2WdX7GERiNrPQrM1K6CVJUUWfHa4t6c= github.com/peterhellberg/link v1.2.0/go.mod h1:gYfAh+oJgQu2SrZHg5hROVRQe1ICoK0/HHJTcE0edxc= -github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= -github.com/petermattis/goid v0.0.0-20250813065127-a731cc31b4fe h1:vHpqOnPlnkba8iSxU4j/CvDSS9J4+F4473esQsYLGoE= -github.com/petermattis/goid v0.0.0-20250813065127-a731cc31b4fe/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= @@ -1602,8 +1541,6 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/puzpuzpuz/xsync/v4 v4.1.0 h1:x9eHRl4QhZFIPJ17yl4KKW9xLyVWbb3/Yq4SXpjF71U= github.com/puzpuzpuz/xsync/v4 v4.1.0/go.mod h1:VJDmTCJMBt8igNxnkQd86r+8KUeN1quSfNKu5bLYFQo= @@ -1649,8 +1586,6 @@ github.com/samber/slog-common v0.19.0 h1:fNcZb8B2uOLooeYwFpAlKjkQTUafdjfqKcwcC89 github.com/samber/slog-common v0.19.0/go.mod h1:dTz+YOU76aH007YUU0DffsXNsGFQRQllPQh9XyNoA3M= github.com/samber/slog-zerolog/v2 v2.7.3 h1:/MkPDl/tJhijN2GvB1MWwBn2FU8RiL3rQ8gpXkQm2EY= github.com/samber/slog-zerolog/v2 v2.7.3/go.mod h1:oWU7WHof4Xp8VguiNO02r1a4VzkgoOyOZhY5CuRke60= -github.com/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU= -github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.34 h1:48+VFHsyVcAHIN2v1Ao9v1/RkjJS5AwctFucBrfYNIA= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.34/go.mod h1:zFWiHphneiey3s8HOtAEnGrRlWivNaxW5T6d5Xfco7g= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= @@ -1740,8 +1675,6 @@ github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69 github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/swaggo/swag v1.16.6 h1:qBNcx53ZaX+M5dxVyTrgQ0PJ/ACK+NzhwcbieTt+9yI= -github.com/swaggo/swag v1.16.6/go.mod h1:ngP2etMK5a0P3QBizic5MEwpRmluJZPHjXcMoj4Xesg= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1208/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.18 h1:Pkyu9oYcYkp0GFKWa/Jyf8IeS6AADgUoUoRzP2eDq2Q= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.18/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= @@ -1769,8 +1702,6 @@ github.com/vincent-petithory/dataurl v1.0.0 h1:cXw+kPto8NLuJtlMsI152irrVw9fRDX8A github.com/vincent-petithory/dataurl v1.0.0/go.mod h1:FHafX5vmDzyP+1CQATJn7WFKc9CvnvxyvZy6I1MrG/U= github.com/vinyldns/go-vinyldns v0.9.16 h1:GZJStDkcCk1F1AcRc64LuuMh+ENL8pHA0CVd4ulRMcQ= github.com/vinyldns/go-vinyldns v0.9.16/go.mod h1:5qIJOdmzAnatKjurI+Tl4uTus7GJKJxb+zitufjHs3Q= -github.com/vishvananda/netns v0.0.5 h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zdEY= -github.com/vishvananda/netns v0.0.5/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= github.com/volcengine/volc-sdk-golang v1.0.219 h1:IqMCdpJ6uuqS2ZZQYUVHKVd+2H1au0NDsSt0wx6hv9k= github.com/volcengine/volc-sdk-golang v1.0.219/go.mod h1:zHJlaqiMbIB+0mcrsZPTwOb3FB7S/0MCfqlnO8R7hlM= github.com/vultr/govultr/v3 v3.23.0 h1:0jZo4FI+oMkPXFez1bvhsb5Ql0EZUFbe3SNLq3d8IIY= @@ -1822,7 +1753,6 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= diff --git a/internal/api/handler.go b/internal/api/handler.go index 9d248ee2..0676b026 100644 --- a/internal/api/handler.go +++ b/internal/api/handler.go @@ -14,7 +14,6 @@ import ( authApi "github.com/yusing/go-proxy/internal/api/v1/auth" certApi "github.com/yusing/go-proxy/internal/api/v1/cert" dockerApi "github.com/yusing/go-proxy/internal/api/v1/docker" - "github.com/yusing/go-proxy/internal/api/v1/docs" fileApi "github.com/yusing/go-proxy/internal/api/v1/file" homepageApi "github.com/yusing/go-proxy/internal/api/v1/homepage" metricsApi "github.com/yusing/go-proxy/internal/api/v1/metrics" @@ -44,9 +43,6 @@ func NewHandler() *gin.Engine { r.Use(ErrorHandler()) r.Use(ErrorLoggingMiddleware()) - docs.SwaggerInfo.Title = "GoDoxy API" - docs.SwaggerInfo.BasePath = "/api/v1" - r.GET("/api/v1/version", apiV1.Version) v1Auth := r.Group("/api/v1/auth") diff --git a/internal/api/v1/docs/docs.go b/internal/api/v1/docs/docs.go deleted file mode 100644 index 61471902..00000000 --- a/internal/api/v1/docs/docs.go +++ /dev/null @@ -1,3572 +0,0 @@ -// Package docs Code generated by swaggo/swag. DO NOT EDIT -package docs - -import "github.com/swaggo/swag" - -const docTemplate = `{ - "schemes": {{ marshal .Schemes }}, - "swagger": "2.0", - "info": { - "description": "{{escape .Description}}", - "title": "{{.Title}}", - "termsOfService": "https://github.com/yusing/godoxy/blob/main/LICENSE", - "contact": { - "name": "Yusing", - "url": "https://github.com/yusing/godoxy/issues" - }, - "license": { - "name": "MIT", - "url": "https://github.com/yusing/godoxy/blob/main/LICENSE" - }, - "version": "{{.Version}}" - }, - "host": "{{.Host}}", - "basePath": "{{.BasePath}}", - "paths": { - "/agent/create": { - "post": { - "description": "Create a new agent and return the docker compose file, encrypted CA and client PEMs\nThe returned PEMs are encrypted with a random key and will be used for verification when adding a new agent", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "agent" - ], - "summary": "Create a new agent", - "parameters": [ - { - "description": "Request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/NewAgentRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/NewAgentResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "409": { - "description": "Conflict", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "create" - } - }, - "/agent/list": { - "get": { - "description": "List agents", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "agent", - "websocket" - ], - "summary": "List agents", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/Agent" - } - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "list" - } - }, - "/agent/verify": { - "post": { - "description": "Verify a new agent and return the number of routes added", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "agent" - ], - "summary": "Verify a new agent", - "parameters": [ - { - "description": "Request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/VerifyNewAgentRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SuccessResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "verify" - } - }, - "/auth/callback": { - "get": { - "description": "Handles the callback from the provider after successful authentication", - "produces": [ - "text/plain" - ], - "tags": [ - "auth" - ], - "summary": "Auth Callback", - "parameters": [ - { - "description": "Userpass only", - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/auth.UserPassAuthCallbackRequest" - } - } - ], - "responses": { - "200": { - "description": "Userpass: OK", - "schema": { - "type": "string" - } - }, - "302": { - "description": "OIDC: Redirects to home page", - "schema": { - "type": "string" - } - }, - "400": { - "description": "Userpass: invalid request / credentials", - "schema": { - "type": "string" - } - }, - "500": { - "description": "Internal server error", - "schema": { - "type": "string" - } - } - }, - "x-id": "callback" - }, - "post": { - "description": "Handles the callback from the provider after successful authentication", - "produces": [ - "text/plain" - ], - "tags": [ - "auth" - ], - "summary": "Auth Callback", - "parameters": [ - { - "description": "Userpass only", - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/auth.UserPassAuthCallbackRequest" - } - } - ], - "responses": { - "200": { - "description": "Userpass: OK", - "schema": { - "type": "string" - } - }, - "302": { - "description": "OIDC: Redirects to home page", - "schema": { - "type": "string" - } - }, - "400": { - "description": "Userpass: invalid request / credentials", - "schema": { - "type": "string" - } - }, - "500": { - "description": "Internal server error", - "schema": { - "type": "string" - } - } - }, - "x-id": "callback" - } - }, - "/auth/check": { - "head": { - "description": "Checks if the user is authenticated by validating their token", - "produces": [ - "text/plain" - ], - "tags": [ - "auth" - ], - "summary": "Check authentication status", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "403": { - "description": "Forbidden: use X-Redirect-To header to redirect to login page", - "schema": { - "type": "string" - } - } - }, - "x-id": "check" - } - }, - "/auth/login": { - "post": { - "description": "Initiates the login process by redirecting the user to the provider's login page", - "produces": [ - "text/plain" - ], - "tags": [ - "auth" - ], - "summary": "Login", - "responses": { - "302": { - "description": "Redirects to login page or IdP", - "schema": { - "type": "string" - } - }, - "403": { - "description": "Forbidden(webui): follow X-Redirect-To header", - "schema": { - "type": "string" - } - }, - "429": { - "description": "Too Many Requests", - "schema": { - "type": "string" - } - } - }, - "x-id": "login" - } - }, - "/auth/logout": { - "post": { - "description": "Logs out the user by invalidating the token", - "produces": [ - "text/plain" - ], - "tags": [ - "auth" - ], - "summary": "Logout", - "responses": { - "302": { - "description": "Redirects to home page", - "schema": { - "type": "string" - } - } - }, - "x-id": "logout" - } - }, - "/cert/info": { - "get": { - "description": "Get cert info", - "produces": [ - "application/json" - ], - "tags": [ - "cert" - ], - "summary": "Get cert info", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/CertInfo" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "info" - } - }, - "/cert/renew": { - "get": { - "description": "Renew cert", - "produces": [ - "text/plain" - ], - "tags": [ - "cert", - "websocket" - ], - "summary": "Renew cert", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SuccessResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "renew" - } - }, - "/docker/containers": { - "get": { - "description": "Get containers", - "produces": [ - "application/json" - ], - "tags": [ - "docker" - ], - "summary": "Get containers", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/ContainerResponse" - } - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "containers" - } - }, - "/docker/info": { - "get": { - "description": "Get docker info", - "produces": [ - "application/json" - ], - "tags": [ - "docker" - ], - "summary": "Get docker info", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ServerInfo" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "info" - } - }, - "/docker/logs/{server}/{container}": { - "get": { - "description": "Get docker container logs", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "docker", - "websocket" - ], - "summary": "Get docker container logs", - "parameters": [ - { - "type": "string", - "description": "server name", - "name": "server", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "container id", - "name": "container", - "in": "path", - "required": true - }, - { - "type": "boolean", - "description": "show stdout", - "name": "stdout", - "in": "query" - }, - { - "type": "boolean", - "description": "show stderr", - "name": "stderr", - "in": "query" - }, - { - "type": "string", - "description": "from timestamp", - "name": "from", - "in": "query" - }, - { - "type": "string", - "description": "to timestamp", - "name": "to", - "in": "query" - }, - { - "type": "string", - "description": "levels", - "name": "levels", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "logs" - } - }, - "/favicon": { - "get": { - "description": "Get favicon", - "consumes": [ - "application/json" - ], - "produces": [ - "image/svg+xml", - "image/x-icon", - "image/png", - "image/webp" - ], - "tags": [ - "v1" - ], - "summary": "Get favicon", - "parameters": [ - { - "type": "string", - "description": "URL of the route", - "name": "url", - "in": "query" - }, - { - "type": "string", - "description": "Alias of the route", - "name": "alias", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/homepage.FetchResult" - } - } - }, - "400": { - "description": "Bad Request: alias is empty or route is not HTTPRoute", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden: unauthorized", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "404": { - "description": "Not Found: route or icon not found", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error: internal error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "favicon" - } - }, - "/file/content": { - "get": { - "description": "Get file content", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json", - "application/godoxy+yaml" - ], - "tags": [ - "file" - ], - "summary": "Get file content", - "parameters": [ - { - "type": "string", - "format": "filename", - "name": "filename", - "in": "query", - "required": true - }, - { - "enum": [ - "config", - "provider", - "middleware" - ], - "type": "string", - "x-enum-varnames": [ - "FileTypeConfig", - "FileTypeProvider", - "FileTypeMiddleware" - ], - "name": "type", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "get" - }, - "put": { - "description": "Set file content", - "consumes": [ - "text/plain" - ], - "produces": [ - "application/json" - ], - "tags": [ - "file" - ], - "summary": "Set file content", - "parameters": [ - { - "enum": [ - "config", - "provider", - "middleware" - ], - "type": "string", - "description": "Type", - "name": "type", - "in": "query", - "required": true - }, - { - "type": "string", - "description": "Filename", - "name": "filename", - "in": "query", - "required": true - }, - { - "description": "File", - "name": "file", - "in": "body", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SuccessResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "set" - } - }, - "/file/list": { - "get": { - "description": "List files", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "file" - ], - "summary": "List files", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ListFilesResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "list" - } - }, - "/file/validate": { - "post": { - "description": "Validate file", - "consumes": [ - "text/plain" - ], - "produces": [ - "application/json" - ], - "tags": [ - "file" - ], - "summary": "Validate file", - "parameters": [ - { - "enum": [ - "config", - "provider", - "middleware" - ], - "type": "string", - "description": "Type", - "name": "type", - "in": "query", - "required": true - }, - { - "description": "File content", - "name": "file", - "in": "body", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "File validated", - "schema": { - "$ref": "#/definitions/SuccessResponse" - } - }, - "400": { - "description": "Bad request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "417": { - "description": "Validation failed", - "schema": {} - }, - "500": { - "description": "Internal server error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "validate" - } - }, - "/health": { - "get": { - "description": "Get health info by route name", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "v1", - "websocket" - ], - "summary": "Get routes health info", - "responses": { - "200": { - "description": "Health info by route name", - "schema": { - "$ref": "#/definitions/HealthMap" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "health" - } - }, - "/homepage/categories": { - "get": { - "description": "List homepage categories", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "homepage" - ], - "summary": "List homepage categories", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "categories" - } - }, - "/homepage/items": { - "get": { - "description": "Homepage items", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "homepage" - ], - "summary": "Homepage items", - "parameters": [ - { - "type": "string", - "description": "Category filter", - "name": "category", - "in": "query" - }, - { - "type": "string", - "description": "Provider filter", - "name": "provider", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/HomepageItems" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "items" - } - }, - "/homepage/set/category_order": { - "post": { - "description": "Set homepage category order.", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "homepage" - ], - "summary": "Set homepage category order", - "parameters": [ - { - "description": "Override category order", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/HomepageOverrideCategoryOrderParams" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SuccessResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "set-category-order" - } - }, - "/homepage/set/item": { - "post": { - "description": "Override single homepage item.", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "homepage" - ], - "summary": "Override single homepage item", - "parameters": [ - { - "description": "Override single item", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/HomepageOverrideItemParams" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SuccessResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "set-item" - } - }, - "/homepage/set/item_visible": { - "post": { - "description": "POST list of item ids and visibility value.", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "homepage" - ], - "summary": "Set homepage item visibility", - "parameters": [ - { - "description": "Set item visibility", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/HomepageOverrideItemVisibleParams" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SuccessResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "set-item-visible" - } - }, - "/homepage/set/items_batch": { - "post": { - "description": "Override multiple homepage items.", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "homepage" - ], - "summary": "Override multiple homepage items", - "parameters": [ - { - "description": "Override multiple items", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/HomepageOverrideItemsBatchParams" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SuccessResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "set-items-batch" - } - }, - "/icons": { - "get": { - "description": "List icons", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "v1" - ], - "summary": "List icons", - "parameters": [ - { - "type": "integer", - "description": "Limit", - "name": "limit", - "in": "query" - }, - { - "type": "string", - "description": "Keyword", - "name": "keyword", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/homepage.IconMetaSearch" - } - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "icons" - } - }, - "/metrics/system_info": { - "get": { - "description": "Get system info", - "produces": [ - "application/json" - ], - "tags": [ - "metrics", - "websocket" - ], - "summary": "Get system info", - "parameters": [ - { - "type": "string", - "name": "agentAddr", - "in": "query" - }, - { - "enum": [ - "cpu_average", - "memory_usage", - "memory_usage_percent", - "disks_read_speed", - "disks_write_speed", - "disks_iops", - "disk_usage", - "network_speed", - "network_transfer", - "sensor_temperature" - ], - "type": "string", - "x-enum-varnames": [ - "SystemInfoAggregateModeCPUAverage", - "SystemInfoAggregateModeMemoryUsage", - "SystemInfoAggregateModeMemoryUsagePercent", - "SystemInfoAggregateModeDisksReadSpeed", - "SystemInfoAggregateModeDisksWriteSpeed", - "SystemInfoAggregateModeDisksIOPS", - "SystemInfoAggregateModeDiskUsage", - "SystemInfoAggregateModeNetworkSpeed", - "SystemInfoAggregateModeNetworkTransfer", - "SystemInfoAggregateModeSensorTemperature" - ], - "name": "aggregate", - "in": "query" - }, - { - "enum": [ - "5m", - "15m", - "1h", - "1d", - "1mo" - ], - "type": "string", - "x-enum-varnames": [ - "MetricsPeriod5m", - "MetricsPeriod15m", - "MetricsPeriod1h", - "MetricsPeriod1d", - "MetricsPeriod1mo" - ], - "name": "period", - "in": "query" - } - ], - "responses": { - "200": { - "description": "period specified", - "schema": { - "$ref": "#/definitions/SystemInfoAggregate" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "system_info" - } - }, - "/metrics/uptime": { - "get": { - "description": "Get uptime", - "produces": [ - "application/json" - ], - "tags": [ - "metrics", - "websocket" - ], - "summary": "Get uptime", - "parameters": [ - { - "enum": [ - "5m", - "15m", - "1h", - "1d", - "1mo" - ], - "type": "string", - "example": "1m", - "x-enum-varnames": [ - "MetricsPeriod5m", - "MetricsPeriod15m", - "MetricsPeriod1h", - "MetricsPeriod1d", - "MetricsPeriod1mo" - ], - "name": "interval", - "in": "query" - }, - { - "type": "string", - "example": "", - "name": "keyword", - "in": "query" - }, - { - "type": "integer", - "default": 0, - "example": 10, - "name": "limit", - "in": "query" - }, - { - "type": "integer", - "default": 0, - "example": 10, - "name": "offset", - "in": "query" - } - ], - "responses": { - "200": { - "description": "period specified", - "schema": { - "$ref": "#/definitions/UptimeAggregate" - } - }, - "204": { - "description": "No Content", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "uptime" - } - }, - "/reload": { - "post": { - "description": "Reload config", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "v1" - ], - "summary": "Reload config", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SuccessResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "reload" - } - }, - "/route/by_provider": { - "get": { - "description": "List routes by provider", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "route" - ], - "summary": "List routes by provider", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/routeApi.RoutesByProvider" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "byProvider" - } - }, - "/route/list": { - "get": { - "description": "List routes", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "route", - "websocket" - ], - "summary": "List routes", - "parameters": [ - { - "type": "string", - "description": "Provider", - "name": "provider", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/Route" - } - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "routes" - } - }, - "/route/providers": { - "get": { - "description": "List route providers", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "route", - "websocket" - ], - "summary": "List route providers", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/RouteProvider" - } - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "providers" - } - }, - "/route/{which}": { - "get": { - "description": "List route", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "route" - ], - "summary": "List route", - "parameters": [ - { - "type": "string", - "description": "Route name", - "name": "which", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Route" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "route" - } - }, - "/stats": { - "get": { - "description": "Get stats", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "v1", - "websocket" - ], - "summary": "Get GoDoxy stats", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/StatsResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-id": "stats" - } - }, - "/version": { - "get": { - "description": "Get the version of the GoDoxy", - "consumes": [ - "application/json" - ], - "produces": [ - "text/plain" - ], - "tags": [ - "v1" - ], - "summary": "Get version", - "responses": { - "200": { - "description": "version", - "schema": { - "type": "string" - } - } - }, - "x-id": "version" - } - } - }, - "definitions": { - "Agent": { - "type": "object", - "properties": { - "addr": { - "type": "string" - }, - "is_nerdctl": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - } - }, - "CIDR": { - "type": "object", - "properties": { - "ip": { - "description": "network number", - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } - }, - "mask": { - "description": "network mask", - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } - } - } - }, - "CertInfo": { - "type": "object", - "properties": { - "dns_names": { - "type": "array", - "items": { - "type": "string" - } - }, - "email_addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "issuer": { - "type": "string" - }, - "not_after": { - "type": "integer" - }, - "not_before": { - "type": "integer" - }, - "subject": { - "type": "string" - } - } - }, - "Container": { - "type": "object", - "properties": { - "agent": { - "$ref": "#/definitions/Agent" - }, - "aliases": { - "type": "array", - "items": { - "type": "string" - } - }, - "container_id": { - "type": "string" - }, - "container_name": { - "type": "string" - }, - "docker_host": { - "type": "string" - }, - "errors": { - "type": "string" - }, - "idlewatcher_config": { - "$ref": "#/definitions/IdlewatcherConfig" - }, - "image": { - "$ref": "#/definitions/ContainerImage" - }, - "is_excluded": { - "type": "boolean" - }, - "is_explicit": { - "type": "boolean" - }, - "is_host_network_mode": { - "type": "boolean" - }, - "labels": { - "description": "for displaying in UI", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "mounts": { - "description": "source:destination", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "network": { - "type": "string" - }, - "private_hostname": { - "type": "string" - }, - "private_ports": { - "description": "privatePort:types.Port", - "allOf": [ - { - "$ref": "#/definitions/types.PortMapping" - } - ] - }, - "public_hostname": { - "type": "string" - }, - "public_ports": { - "description": "non-zero publicPort:types.Port", - "allOf": [ - { - "$ref": "#/definitions/types.PortMapping" - } - ] - }, - "running": { - "type": "boolean" - } - } - }, - "ContainerImage": { - "type": "object", - "properties": { - "author": { - "type": "string" - }, - "name": { - "type": "string" - }, - "sha256": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "version": { - "type": "string" - } - } - }, - "ContainerResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "image": { - "type": "string" - }, - "name": { - "type": "string" - }, - "server": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/ContainerState" - } - } - }, - "ContainerState": { - "type": "string", - "enum": [ - "created", - "running", - "paused", - "restarting", - "removing", - "exited", - "dead" - ], - "x-enum-comments": { - "StateCreated": "StateCreated indicates the container is created, but not (yet) started.", - "StateDead": "StateDead indicates that the container failed to be deleted. Containers in this state are attempted to be cleaned up when the daemon restarts.", - "StateExited": "StateExited indicates that the container exited.", - "StatePaused": "StatePaused indicates that the container's current state is paused.", - "StateRemoving": "StateRemoving indicates that the container is being removed.", - "StateRestarting": "StateRestarting indicates that the container is currently restarting.", - "StateRunning": "StateRunning indicates that the container is running." - }, - "x-enum-descriptions": [ - "StateCreated indicates the container is created, but not (yet) started.", - "StateRunning indicates that the container is running.", - "StatePaused indicates that the container's current state is paused.", - "StateRestarting indicates that the container is currently restarting.", - "StateRemoving indicates that the container is being removed.", - "StateExited indicates that the container exited.", - "StateDead indicates that the container failed to be deleted. Containers in this state are attempted to be cleaned up when the daemon restarts." - ], - "x-enum-varnames": [ - "StateCreated", - "StateRunning", - "StatePaused", - "StateRestarting", - "StateRemoving", - "StateExited", - "StateDead" - ] - }, - "ContainerStats": { - "type": "object", - "properties": { - "paused": { - "type": "integer" - }, - "running": { - "type": "integer" - }, - "stopped": { - "type": "integer" - }, - "total": { - "type": "integer" - } - } - }, - "ContainerStopMethod": { - "type": "string", - "enum": [ - "pause", - "stop", - "kill" - ], - "x-enum-varnames": [ - "ContainerStopMethodPause", - "ContainerStopMethodStop", - "ContainerStopMethodKill" - ] - }, - "DockerConfig": { - "type": "object", - "required": [ - "container_id", - "container_name", - "docker_host" - ], - "properties": { - "container_id": { - "type": "string" - }, - "container_name": { - "type": "string" - }, - "docker_host": { - "type": "string" - } - } - }, - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "string", - "x-nullable": true - }, - "message": { - "type": "string" - } - } - }, - "FileType": { - "type": "string", - "enum": [ - "config", - "provider", - "middleware" - ], - "x-enum-varnames": [ - "FileTypeConfig", - "FileTypeProvider", - "FileTypeMiddleware" - ] - }, - "HTTPHeader": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - } - }, - "HealthCheckConfig": { - "type": "object", - "properties": { - "disable": { - "type": "boolean" - }, - "interval": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "retries": { - "description": "\u003c0: immediate, \u003e=0: threshold", - "type": "integer" - }, - "timeout": { - "type": "integer" - }, - "use_get": { - "type": "boolean" - } - } - }, - "HealthExtra": { - "type": "object", - "properties": { - "config": { - "$ref": "#/definitions/LoadBalancerConfig" - }, - "pool": { - "type": "object", - "additionalProperties": {} - } - } - }, - "HealthJSON": { - "type": "object", - "properties": { - "config": { - "$ref": "#/definitions/HealthCheckConfig" - }, - "detail": { - "type": "string" - }, - "extra": { - "allOf": [ - { - "$ref": "#/definitions/HealthExtra" - } - ], - "x-nullable": true - }, - "lastSeen": { - "type": "integer" - }, - "lastSeenStr": { - "type": "string" - }, - "latency": { - "type": "number" - }, - "latencyStr": { - "type": "string" - }, - "name": { - "type": "string" - }, - "started": { - "type": "integer" - }, - "startedStr": { - "type": "string" - }, - "status": { - "type": "string" - }, - "uptime": { - "type": "number" - }, - "uptimeStr": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "HealthMap": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/routes.HealthInfo" - } - }, - "HomepageItems": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/definitions/homepage.Item" - } - } - }, - "HomepageOverrideCategoryOrderParams": { - "type": "object", - "properties": { - "value": { - "type": "integer" - }, - "which": { - "type": "string" - } - } - }, - "HomepageOverrideItemParams": { - "type": "object", - "properties": { - "value": { - "$ref": "#/definitions/homepage.ItemConfig" - }, - "which": { - "type": "string" - } - } - }, - "HomepageOverrideItemVisibleParams": { - "type": "object", - "properties": { - "value": { - "type": "boolean" - }, - "which": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "HomepageOverrideItemsBatchParams": { - "type": "object", - "properties": { - "value": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/homepage.ItemConfig" - } - } - } - }, - "IdlewatcherConfig": { - "type": "object", - "properties": { - "depends_on": { - "type": "array", - "items": { - "type": "string" - } - }, - "docker": { - "$ref": "#/definitions/DockerConfig" - }, - "idle_timeout": { - "description": "0: no idle watcher.\nPositive: idle watcher with idle timeout.\nNegative: idle watcher as a dependency.\tIdleTimeout time.Duration ` + "`" + `json:\"idle_timeout\" json_ext:\"duration\"` + "`" + `", - "allOf": [ - { - "$ref": "#/definitions/time.Duration" - } - ] - }, - "proxmox": { - "$ref": "#/definitions/ProxmoxConfig" - }, - "start_endpoint": { - "description": "Optional path that must be hit to start container", - "type": "string" - }, - "stop_method": { - "$ref": "#/definitions/ContainerStopMethod" - }, - "stop_signal": { - "type": "string" - }, - "stop_timeout": { - "$ref": "#/definitions/time.Duration" - }, - "wake_timeout": { - "$ref": "#/definitions/time.Duration" - } - } - }, - "ListFilesResponse": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "type": "string" - } - }, - "middleware": { - "type": "array", - "items": { - "type": "string" - } - }, - "provider": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "LoadBalancerConfig": { - "type": "object", - "properties": { - "link": { - "type": "string" - }, - "mode": { - "$ref": "#/definitions/LoadBalancerMode" - }, - "options": { - "type": "object", - "additionalProperties": {} - }, - "weight": { - "type": "integer" - } - } - }, - "LoadBalancerMode": { - "type": "string", - "enum": [ - "", - "roundrobin", - "leastconn", - "iphash" - ], - "x-enum-varnames": [ - "LoadbalanceModeUnset", - "LoadbalanceModeRoundRobin", - "LoadbalanceModeLeastConn", - "LoadbalanceModeIPHash" - ] - }, - "LogFilter-CIDR": { - "type": "object", - "properties": { - "negative": { - "type": "boolean" - }, - "values": { - "type": "array", - "items": { - "$ref": "#/definitions/CIDR" - } - } - } - }, - "LogFilter-HTTPHeader": { - "type": "object", - "properties": { - "negative": { - "type": "boolean" - }, - "values": { - "type": "array", - "items": { - "$ref": "#/definitions/HTTPHeader" - } - } - } - }, - "LogFilter-HTTPMethod": { - "type": "object", - "properties": { - "negative": { - "type": "boolean" - }, - "values": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "LogFilter-Host": { - "type": "object", - "properties": { - "negative": { - "type": "boolean" - }, - "values": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "LogFilter-StatusCodeRange": { - "type": "object", - "properties": { - "negative": { - "type": "boolean" - }, - "values": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusCodeRange" - } - } - } - }, - "LogRetention": { - "type": "object", - "properties": { - "days": { - "type": "integer" - }, - "keep_size": { - "type": "integer" - }, - "last": { - "type": "integer" - } - } - }, - "MetricsPeriod": { - "type": "string", - "enum": [ - "5m", - "15m", - "1h", - "1d", - "1mo" - ], - "x-enum-varnames": [ - "MetricsPeriod5m", - "MetricsPeriod15m", - "MetricsPeriod1h", - "MetricsPeriod1d", - "MetricsPeriod1mo" - ] - }, - "NewAgentRequest": { - "type": "object", - "required": [ - "host", - "name", - "port", - "type" - ], - "properties": { - "container_runtime": { - "enum": [ - "docker", - "podman", - "nerdctl" - ], - "allOf": [ - { - "$ref": "#/definitions/agent.ContainerRuntime" - } - ] - }, - "host": { - "type": "string" - }, - "name": { - "type": "string" - }, - "nightly": { - "type": "boolean" - }, - "port": { - "type": "integer", - "maximum": 65535, - "minimum": 1 - }, - "type": { - "type": "string", - "enum": [ - "docker", - "system" - ] - } - } - }, - "NewAgentResponse": { - "type": "object", - "properties": { - "ca": { - "$ref": "#/definitions/PEMPairResponse" - }, - "client": { - "$ref": "#/definitions/PEMPairResponse" - }, - "compose": { - "type": "string" - } - } - }, - "PEMPairResponse": { - "type": "object", - "properties": { - "cert": { - "type": "string", - "format": "base64" - }, - "key": { - "type": "string", - "format": "base64" - } - } - }, - "ProviderStats": { - "type": "object", - "properties": { - "reverse_proxies": { - "$ref": "#/definitions/RouteStats" - }, - "streams": { - "$ref": "#/definitions/RouteStats" - }, - "total": { - "type": "integer" - }, - "type": { - "$ref": "#/definitions/ProviderType" - } - } - }, - "ProviderType": { - "type": "string", - "enum": [ - "docker", - "file", - "agent" - ], - "x-enum-varnames": [ - "ProviderTypeDocker", - "ProviderTypeFile", - "ProviderTypeAgent" - ] - }, - "ProxmoxConfig": { - "type": "object", - "required": [ - "node", - "vmid" - ], - "properties": { - "node": { - "type": "string" - }, - "vmid": { - "type": "integer" - } - } - }, - "ProxyStats": { - "type": "object", - "properties": { - "providers": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/ProviderStats" - } - }, - "reverse_proxies": { - "$ref": "#/definitions/RouteStats" - }, - "streams": { - "$ref": "#/definitions/RouteStats" - }, - "total": { - "type": "integer" - } - } - }, - "RequestLoggerConfig": { - "type": "object", - "properties": { - "buffer_size": { - "description": "Deprecated: buffer size is adjusted dynamically", - "type": "integer" - }, - "fields": { - "$ref": "#/definitions/accesslog.Fields" - }, - "filters": { - "$ref": "#/definitions/accesslog.Filters" - }, - "format": { - "type": "string", - "enum": [ - "common", - "combined", - "json" - ] - }, - "path": { - "type": "string" - }, - "retention": { - "$ref": "#/definitions/LogRetention" - }, - "rotate_interval": { - "type": "integer" - }, - "stdout": { - "type": "boolean" - } - } - }, - "Route": { - "type": "object", - "properties": { - "access_log": { - "allOf": [ - { - "$ref": "#/definitions/RequestLoggerConfig" - } - ], - "x-nullable": true - }, - "agent": { - "type": "string" - }, - "alias": { - "type": "string" - }, - "container": { - "description": "Docker only", - "allOf": [ - { - "$ref": "#/definitions/Container" - } - ], - "x-nullable": true - }, - "disable_compression": { - "type": "boolean" - }, - "excluded": { - "type": "boolean" - }, - "health": { - "description": "for swagger", - "allOf": [ - { - "$ref": "#/definitions/HealthJSON" - } - ] - }, - "healthcheck": { - "$ref": "#/definitions/HealthCheckConfig" - }, - "homepage": { - "$ref": "#/definitions/homepage.ItemConfig" - }, - "host": { - "type": "string" - }, - "idlewatcher": { - "allOf": [ - { - "$ref": "#/definitions/IdlewatcherConfig" - } - ], - "x-nullable": true - }, - "load_balance": { - "allOf": [ - { - "$ref": "#/definitions/LoadBalancerConfig" - } - ], - "x-nullable": true - }, - "lurl": { - "description": "private fields", - "type": "string", - "x-nullable": true - }, - "middlewares": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/types.LabelMap" - }, - "x-nullable": true - }, - "no_tls_verify": { - "type": "boolean" - }, - "path_patterns": { - "type": "array", - "items": { - "type": "string" - }, - "x-nullable": true - }, - "port": { - "$ref": "#/definitions/route.Port" - }, - "provider": { - "description": "for backward compatibility", - "type": "string", - "x-nullable": true - }, - "purl": { - "type": "string" - }, - "response_header_timeout": { - "type": "integer" - }, - "root": { - "type": "string" - }, - "rules": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/rules.Rule" - } - }, - "scheme": { - "$ref": "#/definitions/route.Scheme" - } - } - }, - "RouteProvider": { - "type": "object", - "properties": { - "full_name": { - "type": "string" - }, - "short_name": { - "type": "string" - } - } - }, - "RouteStats": { - "type": "object", - "properties": { - "error": { - "type": "integer" - }, - "healthy": { - "type": "integer" - }, - "napping": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "unhealthy": { - "type": "integer" - }, - "unknown": { - "type": "integer" - } - } - }, - "RouteStatus": { - "type": "object", - "properties": { - "latency": { - "type": "integer" - }, - "status": { - "type": "string", - "enum": [ - "healthy", - "unhealthy", - "unknown", - "napping", - "starting" - ] - }, - "timestamp": { - "type": "integer" - } - } - }, - "RouteStatusesByAlias": { - "type": "object", - "properties": { - "statuses": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/routes.HealthInfo" - } - }, - "timestamp": { - "type": "integer" - } - } - }, - "RouteUptimeAggregate": { - "type": "object", - "properties": { - "alias": { - "type": "string" - }, - "avg_latency": { - "type": "number" - }, - "display_name": { - "type": "string" - }, - "downtime": { - "type": "number" - }, - "idle": { - "type": "number" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/RouteStatus" - } - }, - "uptime": { - "type": "number" - } - } - }, - "ServerInfo": { - "type": "object", - "properties": { - "containers": { - "$ref": "#/definitions/ContainerStats" - }, - "images": { - "type": "integer" - }, - "memory": { - "type": "string" - }, - "n_cpu": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - } - }, - "StatsResponse": { - "type": "object", - "properties": { - "proxies": { - "$ref": "#/definitions/ProxyStats" - }, - "uptime": { - "type": "string" - } - } - }, - "StatusCodeRange": { - "type": "object", - "properties": { - "end": { - "type": "integer" - }, - "start": { - "type": "integer" - } - } - }, - "SuccessResponse": { - "type": "object", - "properties": { - "details": { - "type": "object", - "additionalProperties": {}, - "x-nullable": true - }, - "message": { - "type": "string" - } - } - }, - "SystemInfo": { - "type": "object", - "properties": { - "cpu_average": { - "type": "number" - }, - "disks": { - "description": "disk usage by partition", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/disk.UsageStat" - } - }, - "disks_io": { - "description": "disk IO by device", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/disk.IOCountersStat" - } - }, - "memory": { - "$ref": "#/definitions/mem.VirtualMemoryStat" - }, - "network": { - "$ref": "#/definitions/net.IOCountersStat" - }, - "sensors": { - "description": "sensor temperature by key", - "type": "array", - "items": { - "$ref": "#/definitions/sensors.TemperatureStat" - } - }, - "timestamp": { - "type": "integer" - } - } - }, - "SystemInfoAggregate": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - } - }, - "total": { - "type": "integer" - } - } - }, - "SystemInfoAggregateMode": { - "type": "string", - "enum": [ - "cpu_average", - "memory_usage", - "memory_usage_percent", - "disks_read_speed", - "disks_write_speed", - "disks_iops", - "disk_usage", - "network_speed", - "network_transfer", - "sensor_temperature" - ], - "x-enum-varnames": [ - "SystemInfoAggregateModeCPUAverage", - "SystemInfoAggregateModeMemoryUsage", - "SystemInfoAggregateModeMemoryUsagePercent", - "SystemInfoAggregateModeDisksReadSpeed", - "SystemInfoAggregateModeDisksWriteSpeed", - "SystemInfoAggregateModeDisksIOPS", - "SystemInfoAggregateModeDiskUsage", - "SystemInfoAggregateModeNetworkSpeed", - "SystemInfoAggregateModeNetworkTransfer", - "SystemInfoAggregateModeSensorTemperature" - ] - }, - "UptimeAggregate": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/definitions/RouteUptimeAggregate" - } - }, - "total": { - "type": "integer" - } - } - }, - "VerifyNewAgentRequest": { - "type": "object", - "properties": { - "ca": { - "$ref": "#/definitions/PEMPairResponse" - }, - "client": { - "$ref": "#/definitions/PEMPairResponse" - }, - "container_runtime": { - "$ref": "#/definitions/agent.ContainerRuntime" - }, - "host": { - "type": "string" - } - } - }, - "accesslog.FieldConfig": { - "type": "object", - "properties": { - "config": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/accesslog.FieldMode" - } - }, - "default": { - "enum": [ - "keep", - "drop", - "redact" - ], - "allOf": [ - { - "$ref": "#/definitions/accesslog.FieldMode" - } - ] - } - } - }, - "accesslog.FieldMode": { - "type": "string", - "enum": [ - "keep", - "drop", - "redact" - ], - "x-enum-varnames": [ - "FieldModeKeep", - "FieldModeDrop", - "FieldModeRedact" - ] - }, - "accesslog.Fields": { - "type": "object", - "properties": { - "cookies": { - "$ref": "#/definitions/accesslog.FieldConfig" - }, - "headers": { - "$ref": "#/definitions/accesslog.FieldConfig" - }, - "query": { - "$ref": "#/definitions/accesslog.FieldConfig" - } - } - }, - "accesslog.Filters": { - "type": "object", - "properties": { - "cidr": { - "$ref": "#/definitions/LogFilter-CIDR" - }, - "headers": { - "description": "header exists or header == value", - "allOf": [ - { - "$ref": "#/definitions/LogFilter-HTTPHeader" - } - ] - }, - "host": { - "$ref": "#/definitions/LogFilter-Host" - }, - "method": { - "$ref": "#/definitions/LogFilter-HTTPMethod" - }, - "status_codes": { - "$ref": "#/definitions/LogFilter-StatusCodeRange" - } - } - }, - "agent.ContainerRuntime": { - "type": "string", - "enum": [ - "docker", - "podman", - "nerdctl" - ], - "x-enum-varnames": [ - "ContainerRuntimeDocker", - "ContainerRuntimePodman", - "ContainerRuntimeNerdctl" - ] - }, - "auth.UserPassAuthCallbackRequest": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - } - }, - "container.Port": { - "type": "object", - "properties": { - "IP": { - "description": "Host IP address that the container's port is mapped to", - "type": "string" - }, - "PrivatePort": { - "description": "Port on the container\nRequired: true", - "type": "integer" - }, - "PublicPort": { - "description": "Port exposed on the host", - "type": "integer" - }, - "Type": { - "description": "type\nRequired: true", - "type": "string" - } - } - }, - "disk.IOCountersStat": { - "type": "object", - "properties": { - "iops": { - "description": "godoxy", - "type": "integer" - }, - "name": { - "description": "ReadCount uint64 ` + "`" + `json:\"readCount\"` + "`" + `\nMergedReadCount uint64 ` + "`" + `json:\"mergedReadCount\"` + "`" + `\nWriteCount uint64 ` + "`" + `json:\"writeCount\"` + "`" + `\nMergedWriteCount uint64 ` + "`" + `json:\"mergedWriteCount\"` + "`" + `\nReadBytes uint64 ` + "`" + `json:\"readBytes\"` + "`" + `\nWriteBytes uint64 ` + "`" + `json:\"writeBytes\"` + "`" + `\nReadTime uint64 ` + "`" + `json:\"readTime\"` + "`" + `\nWriteTime uint64 ` + "`" + `json:\"writeTime\"` + "`" + `\nIopsInProgress uint64 ` + "`" + `json:\"iopsInProgress\"` + "`" + `\nIoTime uint64 ` + "`" + `json:\"ioTime\"` + "`" + `\nWeightedIO uint64 ` + "`" + `json:\"weightedIO\"` + "`" + `", - "type": "string" - }, - "read_bytes": { - "description": "SerialNumber string ` + "`" + `json:\"serialNumber\"` + "`" + `\nLabel string ` + "`" + `json:\"label\"` + "`" + `", - "type": "integer" - }, - "read_count": { - "type": "integer" - }, - "read_speed": { - "description": "godoxy", - "type": "number" - }, - "write_bytes": { - "type": "integer" - }, - "write_count": { - "type": "integer" - }, - "write_speed": { - "description": "godoxy", - "type": "number" - } - } - }, - "disk.UsageStat": { - "type": "object", - "properties": { - "free": { - "type": "integer" - }, - "fstype": { - "type": "string" - }, - "path": { - "type": "string" - }, - "total": { - "type": "integer" - }, - "used": { - "type": "integer" - }, - "used_percent": { - "type": "number" - } - } - }, - "homepage.FetchResult": { - "type": "object", - "properties": { - "errMsg": { - "type": "string" - }, - "icon": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } - }, - "statusCode": { - "type": "integer" - } - } - }, - "homepage.IconMetaSearch": { - "type": "object", - "properties": { - "Dark": { - "type": "boolean" - }, - "Light": { - "type": "boolean" - }, - "PNG": { - "type": "boolean" - }, - "Ref": { - "type": "string" - }, - "SVG": { - "type": "boolean" - }, - "Source": { - "$ref": "#/definitions/homepage.IconSource" - }, - "WebP": { - "type": "boolean" - } - } - }, - "homepage.IconSource": { - "type": "string", - "enum": [ - "https://", - "@target", - "@walkxcode", - "@selfhst" - ], - "x-enum-varnames": [ - "IconSourceAbsolute", - "IconSourceRelative", - "IconSourceWalkXCode", - "IconSourceSelfhSt" - ] - }, - "homepage.Item": { - "type": "object", - "properties": { - "alias": { - "type": "string" - }, - "category": { - "type": "string" - }, - "description": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "name": { - "description": "display name", - "type": "string" - }, - "origin_url": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "show": { - "type": "boolean" - }, - "sort_order": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "widget_config": { - "allOf": [ - { - "$ref": "#/definitions/widgets.Config" - } - ], - "x-nullable": true - } - } - }, - "homepage.ItemConfig": { - "type": "object", - "properties": { - "category": { - "type": "string" - }, - "description": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "name": { - "description": "display name", - "type": "string" - }, - "show": { - "type": "boolean" - }, - "sort_order": { - "type": "integer" - }, - "url": { - "type": "string" - } - } - }, - "mem.VirtualMemoryStat": { - "type": "object", - "properties": { - "available": { - "description": "RAM available for programs to allocate\n\nThis value is computed from the kernel specific values.", - "type": "integer" - }, - "free": { - "description": "This is the kernel's notion of free memory; RAM chips whose bits nobody\ncares about the value of right now. For a human consumable number,\nAvailable is what you really want.", - "type": "integer" - }, - "total": { - "description": "Total amount of RAM on this system", - "type": "integer" - }, - "used": { - "description": "RAM used by programs\n\nThis value is computed from the kernel specific values.", - "type": "integer" - }, - "used_percent": { - "description": "Percentage of RAM used by programs\n\nThis value is computed from the kernel specific values.", - "type": "number" - } - } - }, - "net.IOCountersStat": { - "type": "object", - "properties": { - "bytes_recv": { - "description": "number of bytes received", - "type": "integer" - }, - "bytes_sent": { - "description": "Name string ` + "`" + `json:\"name\"` + "`" + ` // interface name", - "type": "integer" - }, - "download_speed": { - "description": "godoxy", - "type": "number" - }, - "upload_speed": { - "description": "godoxy", - "type": "number" - } - } - }, - "route.Port": { - "type": "object", - "properties": { - "listening": { - "type": "integer" - }, - "proxy": { - "type": "integer" - } - } - }, - "route.Route": { - "type": "object", - "properties": { - "access_log": { - "allOf": [ - { - "$ref": "#/definitions/RequestLoggerConfig" - } - ], - "x-nullable": true - }, - "agent": { - "type": "string" - }, - "alias": { - "type": "string" - }, - "container": { - "description": "Docker only", - "allOf": [ - { - "$ref": "#/definitions/Container" - } - ], - "x-nullable": true - }, - "disable_compression": { - "type": "boolean" - }, - "excluded": { - "type": "boolean" - }, - "health": { - "description": "for swagger", - "allOf": [ - { - "$ref": "#/definitions/HealthJSON" - } - ] - }, - "healthcheck": { - "$ref": "#/definitions/HealthCheckConfig" - }, - "homepage": { - "$ref": "#/definitions/homepage.ItemConfig" - }, - "host": { - "type": "string" - }, - "idlewatcher": { - "allOf": [ - { - "$ref": "#/definitions/IdlewatcherConfig" - } - ], - "x-nullable": true - }, - "load_balance": { - "allOf": [ - { - "$ref": "#/definitions/LoadBalancerConfig" - } - ], - "x-nullable": true - }, - "lurl": { - "description": "private fields", - "type": "string", - "x-nullable": true - }, - "middlewares": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/types.LabelMap" - }, - "x-nullable": true - }, - "no_tls_verify": { - "type": "boolean" - }, - "path_patterns": { - "type": "array", - "items": { - "type": "string" - }, - "x-nullable": true - }, - "port": { - "$ref": "#/definitions/route.Port" - }, - "provider": { - "description": "for backward compatibility", - "type": "string", - "x-nullable": true - }, - "purl": { - "type": "string" - }, - "response_header_timeout": { - "type": "integer" - }, - "root": { - "type": "string" - }, - "rules": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/rules.Rule" - } - }, - "scheme": { - "$ref": "#/definitions/route.Scheme" - } - } - }, - "route.Scheme": { - "type": "string", - "enum": [ - "http", - "https", - "tcp", - "udp", - "fileserver" - ], - "x-enum-varnames": [ - "SchemeHTTP", - "SchemeHTTPS", - "SchemeTCP", - "SchemeUDP", - "SchemeFileServer" - ] - }, - "routeApi.RoutesByProvider": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/definitions/route.Route" - } - } - }, - "routes.HealthInfo": { - "type": "object", - "properties": { - "detail": { - "type": "string" - }, - "latency": { - "description": "latency in microseconds", - "type": "number" - }, - "status": { - "type": "string", - "enum": [ - "healthy", - "unhealthy", - "napping", - "starting", - "error", - "unknown" - ] - }, - "uptime": { - "description": "uptime in milliseconds", - "type": "number" - } - } - }, - "rules.Command": { - "type": "object" - }, - "rules.Rule": { - "type": "object", - "properties": { - "do": { - "$ref": "#/definitions/rules.Command" - }, - "name": { - "type": "string" - }, - "on": { - "$ref": "#/definitions/rules.RuleOn" - } - } - }, - "rules.RuleOn": { - "type": "object" - }, - "sensors.TemperatureStat": { - "type": "object", - "properties": { - "critical": { - "type": "number" - }, - "high": { - "type": "number" - }, - "name": { - "type": "string" - }, - "temperature": { - "type": "number" - } - } - }, - "time.Duration": { - "type": "integer", - "format": "int64", - "enum": [ - -9223372036854775808, - 9223372036854775807, - 1, - 1000, - 1000000, - 1000000000, - 60000000000, - 3600000000000 - ], - "x-enum-varnames": [ - "minDuration", - "maxDuration", - "Nanosecond", - "Microsecond", - "Millisecond", - "Second", - "Minute", - "Hour" - ] - }, - "types.LabelMap": { - "type": "object", - "additionalProperties": {} - }, - "types.PortMapping": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/container.Port" - } - }, - "widgets.Config": { - "type": "object", - "properties": { - "config": {}, - "provider": { - "type": "string" - } - } - } - }, - "externalDocs": { - "description": "GoDoxy Docs", - "url": "https://docs.godoxy.dev" - } -}` - -// SwaggerInfo holds exported Swagger Info so clients can modify it -var SwaggerInfo = &swag.Spec{ - Version: "1.0", - Host: "", - BasePath: "/api/v1", - Schemes: []string{}, - Title: "GoDoxy API", - Description: "GoDoxy API", - InfoInstanceName: "swagger", - SwaggerTemplate: docTemplate, - LeftDelim: "{{", - RightDelim: "}}", -} - -func init() { - swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) -} diff --git a/internal/dnsproviders/go.sum b/internal/dnsproviders/go.sum index 784f661b..4002055d 100644 --- a/internal/dnsproviders/go.sum +++ b/internal/dnsproviders/go.sum @@ -1553,8 +1553,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8= -github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= diff --git a/socket-proxy/go.sum b/socket-proxy/go.sum index 3bb75ffb..2a14d7f3 100644 --- a/socket-proxy/go.sum +++ b/socket-proxy/go.sum @@ -17,8 +17,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=