chore: upgrade dependencies

This commit is contained in:
dushixiang committed 2026-07-08 21:56:14 +08:00
1 parent 26bd90ed90
commit 60678ea1bc
19 files changed
+179 -190

No files matched your search

+20 -22
View File
@@ -3,24 +3,24 @@ module github.com/dushixiang/pika
go 1.26
require (
github.com/coreos/go-oidc/v3 v3.18.0
github.com/coreos/go-oidc/v3 v3.19.0
github.com/fsnotify/fsnotify v1.10.1
github.com/go-errors/errors v1.5.1
github.com/go-orz/cache v0.0.4
github.com/go-orz/orz v0.3.3
github.com/go-orz/orz/drivers/postgres v0.0.0-20260523063730-d2b4b4cd6832
github.com/go-orz/orz/drivers/sqlite v0.0.0-20260523063730-d2b4b4cd6832
github.com/go-orz/orz v0.4.2
github.com/go-orz/orz/drivers/postgres v0.0.0-20260531071203-710ee96634cd
github.com/go-orz/orz/drivers/sqlite v0.0.0-20260531071203-710ee96634cd
github.com/go-orz/toolkit v0.1.0
github.com/go-playground/locales v0.14.1
github.com/go-playground/universal-translator v0.18.1
github.com/go-playground/validator/v10 v10.30.2
github.com/go-playground/validator/v10 v10.30.3
github.com/golang-jwt/jwt/v5 v5.3.1
github.com/google/uuid v1.6.0
github.com/google/wire v0.7.0
github.com/gorilla/websocket v1.5.3
github.com/jpillora/backoff v1.0.0
github.com/kardianos/service v1.2.4
github.com/labstack/echo/v4 v4.15.2
github.com/kardianos/service v1.3.0
github.com/labstack/echo/v5 v5.2.1
github.com/libdns/alidns v1.0.7
github.com/libdns/cloudflare v0.2.2
github.com/libdns/huaweicloud v1.0.1
@@ -28,21 +28,21 @@ require (
github.com/libdns/tencentcloud v1.4.3
github.com/minio/selfupdate v0.6.0
github.com/oschwald/geoip2-golang v1.13.0
github.com/prometheus-community/pro-bing v0.8.0
github.com/prometheus-community/pro-bing v0.9.1
github.com/robfig/cron/v3 v3.0.1
github.com/shirou/gopsutil/v4 v4.26.4
github.com/shirou/gopsutil/v4 v4.26.6
github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8
github.com/spf13/cobra v1.10.2
github.com/valyala/fasttemplate v1.2.2
go.etcd.io/bbolt v1.4.3
go.etcd.io/bbolt v1.5.0
go.uber.org/zap v1.28.0
golang.org/x/crypto v0.52.0
golang.org/x/crypto v0.53.0
golang.org/x/oauth2 v0.36.0
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
gopkg.in/natefinch/lumberjack.v2 v2.2.1
gopkg.in/yaml.v3 v3.0.1
gorm.io/datatypes v1.2.7
gorm.io/gorm v1.31.1
gorm.io/gorm v1.31.2
)
require (
@@ -60,18 +60,16 @@ require (
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
github.com/jackc/pgx/v5 v5.9.2 // indirect
github.com/jackc/pgx/v5 v5.10.0 // indirect
github.com/jackc/puddle/v2 v2.2.2 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
github.com/labstack/gommon v0.5.0 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.22 // indirect
github.com/ncruces/go-strftime v1.0.0 // indirect
github.com/oschwald/maxminddb-golang v1.13.1 // indirect
github.com/pelletier/go-toml/v2 v2.3.1 // indirect
github.com/pelletier/go-toml/v2 v2.4.3 // indirect
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/rogpeppe/go-internal v1.13.1 // indirect
@@ -87,16 +85,16 @@ require (
github.com/yusufpapurcu/wmi v1.2.4 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/net v0.55.0 // indirect
golang.org/x/sync v0.20.0 // indirect
golang.org/x/sys v0.45.0 // indirect
golang.org/x/text v0.37.0 // indirect
golang.org/x/net v0.56.0 // indirect
golang.org/x/sync v0.22.0 // indirect
golang.org/x/sys v0.47.0 // indirect
golang.org/x/text v0.39.0 // indirect
golang.org/x/time v0.15.0 // indirect
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
gorm.io/driver/mysql v1.6.0 // indirect
gorm.io/driver/postgres v1.6.0 // indirect
modernc.org/libc v1.72.3 // indirect
modernc.org/libc v1.74.0 // indirect
modernc.org/mathutil v1.7.1 // indirect
modernc.org/memory v1.11.0 // indirect
modernc.org/sqlite v1.50.1 // indirect
modernc.org/sqlite v1.53.0 // indirect
)
+50 -54
View File
@@ -3,8 +3,8 @@ aead.dev/minisign v0.3.0 h1:8Xafzy5PEVZqYDNP60yJHARlW1eOQtsKNp/Ph2c0vRA=
aead.dev/minisign v0.3.0/go.mod h1:NLvG3Uoq3skkRMDuc3YHpWUTMTrSExqm+Ij73W13F6Y=
filippo.io/edwards25519 v1.2.0 h1:crnVqOiS4jqYleHd9vaKZ+HKtHfllngJIiOpNpoJsjo=
filippo.io/edwards25519 v1.2.0/go.mod h1:xzAOLCNug/yB62zG1bQ8uziwrIqIuxhctzJT18Q77mc=
github.com/coreos/go-oidc/v3 v3.18.0 h1:V9orjXynvu5wiC9SemFTWnG4F45v403aIcjWo0d41+A=
github.com/coreos/go-oidc/v3 v3.18.0/go.mod h1:DYCf24+ncYi+XkIH97GY1+dqoRlbaSI26KVTCI9SrY4=
github.com/coreos/go-oidc/v3 v3.19.0 h1:F/xyOi3x1UnG1U27YVnM1N6bHiL1K2upi6U/0qr8r+I=
github.com/coreos/go-oidc/v3 v3.19.0/go.mod h1:DYCf24+ncYi+XkIH97GY1+dqoRlbaSI26KVTCI9SrY4=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@@ -31,12 +31,12 @@ github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-orz/cache v0.0.4 h1:A8EwJQPiuctmnukFqkWFv4yoOKVen7DEpCVjSJAkAtw=
github.com/go-orz/cache v0.0.4/go.mod h1:qY5/YWUiMMFDHnWMCUJQakXILwJ/sIvbNCR04k08fBs=
github.com/go-orz/orz v0.3.3 h1:tlyKm9bq7avVzm5RjNA/Xxfg5TqRphPXUCYnX0td8rs=
github.com/go-orz/orz v0.3.3/go.mod h1:U45W63IsFB/nv7fCXloo33w9mL6iO0YLQO+br6+FhpI=
github.com/go-orz/orz/drivers/postgres v0.0.0-20260523063730-d2b4b4cd6832 h1:Euq7ZKbt5g5ItIYMPEyhfSa6RUsBYuuMrTZ40rsRvFA=
github.com/go-orz/orz/drivers/postgres v0.0.0-20260523063730-d2b4b4cd6832/go.mod h1:pNs4gR9r6swazJNbh1j5ZY6QGnMLCZeJRnJEwD7rNbc=
github.com/go-orz/orz/drivers/sqlite v0.0.0-20260523063730-d2b4b4cd6832 h1:OoRJA5V5BUtvf8sh7gtennqKuDiWZ1iVlQgJDaT0V+8=
github.com/go-orz/orz/drivers/sqlite v0.0.0-20260523063730-d2b4b4cd6832/go.mod h1:TdawPivyCwRaM975uJMHN5h1xWUyAtih0aOrfGoCh9o=
github.com/go-orz/orz v0.4.2 h1:9w+Mnm2l2cpocytmQ4vviyEjXFkjZalV4UipZEHF52Y=
github.com/go-orz/orz v0.4.2/go.mod h1:CcNuCMx7MkDvXAHrl7y3sJ+CaE8Zt0koSoP4c0YtiAo=
github.com/go-orz/orz/drivers/postgres v0.0.0-20260531071203-710ee96634cd h1:v8pvK0wr08QXpb/+c0QUSb0tyZIdwby9IzKbJ17npgs=
github.com/go-orz/orz/drivers/postgres v0.0.0-20260531071203-710ee96634cd/go.mod h1:uBJjs4uCigsWubTvT6GBbAYxpSEj357b9BStnURyYF4=
github.com/go-orz/orz/drivers/sqlite v0.0.0-20260531071203-710ee96634cd h1:lj5Kyf1usMcXQpUrHW0QnXJTVJDjp5ZFjTLf9m0i3sc=
github.com/go-orz/orz/drivers/sqlite v0.0.0-20260531071203-710ee96634cd/go.mod h1:ilTUu5pIjEaTYiMIuNGNeCMzYsIbTiYN9YvvFUKYtaI=
github.com/go-orz/toolkit v0.1.0 h1:u7jx6wuwgzTSMudiyqdFedgP1VmhZzUO+1r5F1Yw6mc=
github.com/go-orz/toolkit v0.1.0/go.mod h1:y7MySpBCa+GpGh+l83WoaSzFBCfVGTObKa0fd1DhP0s=
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
@@ -45,8 +45,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.30.2 h1:JiFIMtSSHb2/XBUbWM4i/MpeQm9ZK2xqPNk8vgvu5JQ=
github.com/go-playground/validator/v10 v10.30.2/go.mod h1:mAf2pIOVXjTEBrwUMGKkCWKKPs9NheYGabeB04txQSc=
github.com/go-playground/validator/v10 v10.30.3 h1:4MU6YkEwx7GbcPJOZxrtbu+QfF3pJLJuaYTeAH0DYy8=
github.com/go-playground/validator/v10 v10.30.3/go.mod h1:4Axh7oCNGcoGkqLoE4YWt6n20mcEIsPRlB7vPk3lpyc=
github.com/go-sql-driver/mysql v1.10.0 h1:Q+1LV8DkHJvSYAdR83XzuhDaTykuDx0l6fkXxoWCWfw=
github.com/go-sql-driver/mysql v1.10.0/go.mod h1:M+cqaI7+xxXGG9swrdeUIoPG3Y3KCkF0pZej+SK+nWk=
github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro=
@@ -76,8 +76,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
github.com/jackc/pgx/v5 v5.9.2 h1:3ZhOzMWnR4yJ+RW1XImIPsD1aNSz4T4fyP7zlQb56hw=
github.com/jackc/pgx/v5 v5.9.2/go.mod h1:mal1tBGAFfLHvZzaYh77YS/eC6IX9OWbRV1QIIM0Jn4=
github.com/jackc/pgx/v5 v5.10.0 h1:VhSvgU2jSli8o3AqIEOTJr7rZwAEUVo4E4XhR94Zfr0=
github.com/jackc/pgx/v5 v5.10.0/go.mod h1:mal1tBGAFfLHvZzaYh77YS/eC6IX9OWbRV1QIIM0Jn4=
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
@@ -86,16 +86,14 @@ github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
github.com/kardianos/service v1.2.4 h1:XNlGtZOYNx2u91urOdg/Kfmc+gfmuIo1Dd3rEi2OgBk=
github.com/kardianos/service v1.2.4/go.mod h1:E4V9ufUuY82F7Ztlu1eN9VXWIQxg8NoLQlmFe0MtrXc=
github.com/kardianos/service v1.3.0 h1:/LGy+xPP2TM+GLTiCZ2di7cy0Jd/qrawlTUfqKYFdTI=
github.com/kardianos/service v1.3.0/go.mod h1:E4V9ufUuY82F7Ztlu1eN9VXWIQxg8NoLQlmFe0MtrXc=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/labstack/echo/v4 v4.15.2 h1:nnh2sCzGCVYnU+wCisMPiYapEg/QVo/gcI9ePKg5/T4=
github.com/labstack/echo/v4 v4.15.2/go.mod h1:Xzp1Ns1RA2c9fY7nSgUJkpkUZGNbEIVHZbtbOMPktBI=
github.com/labstack/gommon v0.5.0 h1:6VSQ2NOzsnEJ5W6+84E0RbcaDDmgB6NIAzWCczTEe6c=
github.com/labstack/gommon v0.5.0/go.mod h1:Rzlg7HHy1maLfzBYGg9NZcVuz1sA68HHhLjhcEllYE0=
github.com/labstack/echo/v5 v5.2.1 h1:TzpIksY6zLMzV0T0ycYbvTEoj9w6o6AcL5twg182VTY=
github.com/labstack/echo/v5 v5.2.1/go.mod h1:SyvlSdObGjRXeQfCCXW/sybkZdOOQZBmpKF0bvALaeo=
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
github.com/libdns/alidns v1.0.7 h1:0BhTUFlWIUyb5U7wujGqsyoeZkleUR/hMCtdZDS8Oc8=
@@ -110,8 +108,6 @@ github.com/libdns/tencentcloud v1.4.3 h1:xJHYLL1TdPeOtUr6Bu6dHTd1TU6/VFm7BFc2EAz
github.com/libdns/tencentcloud v1.4.3/go.mod h1:Be9gY3tDa12DuAPU79RV9NZIcjY6qg5s7zKPsP26yAM=
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4=
github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
@@ -126,14 +122,14 @@ github.com/oschwald/geoip2-golang v1.13.0 h1:Q44/Ldc703pasJeP5V9+aFSZFmBN7DKHbNs
github.com/oschwald/geoip2-golang v1.13.0/go.mod h1:P9zG+54KPEFOliZ29i7SeYZ/GM6tfEL+rgSn03hYuUo=
github.com/oschwald/maxminddb-golang v1.13.1 h1:G3wwjdN9JmIK2o/ermkHM+98oX5fS+k5MbwsmL4MRQE=
github.com/oschwald/maxminddb-golang v1.13.1/go.mod h1:K4pgV9N/GcK694KSTmVSDTODk4IsCNThNdTmnaBZ/F8=
github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc=
github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
github.com/pelletier/go-toml/v2 v2.4.3 h1:GTRvJQutkOSftxIFD5xw9aepkYNuPWmVJpffdDPYVpY=
github.com/pelletier/go-toml/v2 v2.4.3/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU=
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
github.com/prometheus-community/pro-bing v0.8.0 h1:CEY/g1/AgERRDjxw5P32ikcOgmrSuXs7xon7ovx6mNc=
github.com/prometheus-community/pro-bing v0.8.0/go.mod h1:Idyxz8raDO6TgkUN6ByiEGvWJNyQd40kN9ZUeho3lN0=
github.com/prometheus-community/pro-bing v0.9.1 h1:kpuAr6AU2oRtzGihJSUcetHtjc7ku7h6PxeuW9RVrQw=
github.com/prometheus-community/pro-bing v0.9.1/go.mod h1:z79wYTxAOf6FpTng0QdIhZ3j/Nd5l3+gnFSCIT+SiSQ=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
@@ -143,8 +139,8 @@ github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWN
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4=
github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI=
github.com/shirou/gopsutil/v4 v4.26.4 h1:B4SXVbcwTyrocPHEmWBC4uCYr4Xcu3MK1TXqbprAOWY=
github.com/shirou/gopsutil/v4 v4.26.4/go.mod h1:LZ6ewCSkBqUpvSOf+LsTGnRinC6iaNUNMGBtDkJBaLQ=
github.com/shirou/gopsutil/v4 v4.26.6 h1:Mzr/npDtQC/xpeEuQKHZt8Zo9CmPvhTj8nkR8w5TLDs=
github.com/shirou/gopsutil/v4 v4.26.6/go.mod h1:LZ6ewCSkBqUpvSOf+LsTGnRinC6iaNUNMGBtDkJBaLQ=
github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw=
github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U=
github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I=
@@ -175,8 +171,8 @@ github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQ
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
go.etcd.io/bbolt v1.4.3 h1:dEadXpI6G79deX5prL3QRNP6JB8UxVkqo4UPnHaNXJo=
go.etcd.io/bbolt v1.4.3/go.mod h1:tKQlpPaYCVFctUIgFKFnAlvbmB3tpy1vkTnDWohtc0E=
go.etcd.io/bbolt v1.5.0 h1:S7GAl7Fxv12yohbwFfIbQCGDWbQbtDGPET4P/bD4lxU=
go.etcd.io/bbolt v1.5.0/go.mod h1:mkltfYE5aUHQxUct9N9V+Kp7aSjFqjgrhcXIS70Lrdk=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
@@ -188,18 +184,18 @@ go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/crypto v0.0.0-20211209193657-4570a0811e8b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988=
golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc=
golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8=
golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww=
golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o=
golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec=
golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs=
golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q=
golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek=
golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -208,19 +204,19 @@ golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210228012217-479acdf4ea46/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY=
golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc=
golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38=
golang.org/x/text v0.39.0 h1:UbZz4pLOvn600D6Oh6GGEI6VAmndrEBLv8/6BEXzyus=
golang.org/x/text v0.39.0/go.mod h1:3UwRclnC2g0TU9x8PZiyfOajCd1zaUNHF9cvqcQZ+ZM=
golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U=
golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q=
golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk=
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=
@@ -244,22 +240,22 @@ gorm.io/driver/sqlite v1.6.0 h1:WHRRrIiulaPiPFmDcod6prc4l2VGVWHz80KspNsxSfQ=
gorm.io/driver/sqlite v1.6.0/go.mod h1:AO9V1qIQddBESngQUKWL9yoH93HIeA1X6V633rBwyT8=
gorm.io/driver/sqlserver v1.6.0 h1:VZOBQVsVhkHU/NzNhRJKoANt5pZGQAS1Bwc6m6dgfnc=
gorm.io/driver/sqlserver v1.6.0/go.mod h1:WQzt4IJo/WHKnckU9jXBLMJIVNMVeTu25dnOzehntWw=
gorm.io/gorm v1.31.1 h1:7CA8FTFz/gRfgqgpeKIBcervUn3xSyPUmr6B2WXJ7kg=
gorm.io/gorm v1.31.1/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs=
modernc.org/cc/v4 v4.28.2 h1:3tQ0lf2ADtoby2EtSP+J7IE2SHwEJdP8ioR59wx7XpY=
modernc.org/cc/v4 v4.28.2/go.mod h1:OnovgIhbbMXMu1aISnJ0wvVD1KnW+cAUJkIrAWh+kVI=
modernc.org/ccgo/v4 v4.34.0 h1:yRLPFZieg532OT4rp4JFNIVcquwalMX26G95WQDqwCQ=
modernc.org/ccgo/v4 v4.34.0/go.mod h1:AS5WYMyBakQ+fhsHhtP8mWB82KTGPkNNJDGfGQCe0/A=
gorm.io/gorm v1.31.2 h1:3o8FXNo9v9S858gil+3LlZA1LkCOzgb4g5BL64FgaCo=
gorm.io/gorm v1.31.2/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs=
modernc.org/cc/v4 v4.29.0 h1:CXgwL8cvxmyzBQZzbSl/6xFtMCryb6u8IOqDci39cgc=
modernc.org/cc/v4 v4.29.0/go.mod h1:OnovgIhbbMXMu1aISnJ0wvVD1KnW+cAUJkIrAWh+kVI=
modernc.org/ccgo/v4 v4.34.6 h1:sBgfIwyN0TQ9C5hwIeuqyeAKyMWnbvj2fvpF4L11uzU=
modernc.org/ccgo/v4 v4.34.6/go.mod h1:SZ8YcN9NG7XVsQYdm6jYBvi8PQP1qi+kqB6OhjqI3Fk=
modernc.org/fileutil v1.4.0 h1:j6ZzNTftVS054gi281TyLjHPp6CPHr2KCxEXjEbD6SM=
modernc.org/fileutil v1.4.0/go.mod h1:EqdKFDxiByqxLk8ozOxObDSfcVOv/54xDs/DUHdvCUU=
modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI=
modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito=
modernc.org/gc/v3 v3.1.2 h1:ZtDCnhonXSZexk/AYsegNRV1lJGgaNZJuKjJSWKyEqo=
modernc.org/gc/v3 v3.1.2/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY=
modernc.org/gc/v3 v3.1.4 h1:2g65LGVSmFQrXeITAw97x7hCRvZFcyE1uDP+7Vng7JI=
modernc.org/gc/v3 v3.1.4/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY=
modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks=
modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI=
modernc.org/libc v1.72.3 h1:ZnDF4tXn4NBXFutMMQC4vtbTFSXhhKzR73fv0beZEAU=
modernc.org/libc v1.72.3/go.mod h1:dn0dZNnnn1clLyvRxLxYExxiKRZIRENOfqQ8XEeg4Qs=
modernc.org/libc v1.74.0 h1:rkouuwU6Yqp7ZhwytqBhAiulUi/wvH2KsizSt9R4Hh0=
modernc.org/libc v1.74.0/go.mod h1:uH4t5bOx3G3g9Xcmj10YKlTcVISlRDwv8VoQJG9n8Os=
modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU=
modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg=
modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI=
@@ -268,8 +264,8 @@ modernc.org/opt v0.2.0 h1:tGyef5ApycA7FSEOMraay9SaTk5zmbx7Tu+cJs4QKZg=
modernc.org/opt v0.2.0/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns=
modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w=
modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE=
modernc.org/sqlite v1.50.1 h1:l+cQvn0sd0zJJtfygGHuQJ5AjlrwXmWPw4KP3ZMwr9w=
modernc.org/sqlite v1.50.1/go.mod h1:tcNzv5p84E0skkmJn038y+hWJbLQXQqEnQfeh5r2JLM=
modernc.org/sqlite v1.53.0 h1:20WG8N9q4ji/dEqGk4uiI0c6OPjSeLTNYGFCc3+7c1M=
modernc.org/sqlite v1.53.0/go.mod h1:xoEpOIpGrgT48H5iiyt/YXPCZPEzlfmfFwtk8Lklw8s=
modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
+12 -17
View File
@@ -5,6 +5,7 @@ import (
"fmt"
"log"
"net/http"
"os"
"strings"
"time"
@@ -21,8 +22,8 @@ import (
"github.com/go-errors/errors"
"github.com/go-orz/orz"
"github.com/go-playground/validator/v10"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
"github.com/labstack/echo/v5"
"github.com/labstack/echo/v5/middleware"
"go.uber.org/zap"
"gorm.io/gorm"
)
@@ -122,13 +123,6 @@ func setupApi(app *orz.App, components *AppComponents) error {
e.Use(middleware.Recover())
e.Use(ErrorHandler(logger))
e.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
LogErrorFunc: func(c echo.Context, err error, stack []byte) error {
sugar := logger.Named("[PANIC RECOVER]").Sugar()
sugar.Error(fmt.Sprintf("%v %s\n", err, stack))
return err
},
}))
webDir := assets.WebDir()
if err := assets.RenderUIFilesInDir(webDir, components.PropertyService); err != nil {
@@ -137,7 +131,7 @@ func setupApi(app *orz.App, components *AppComponents) error {
// 静态文件服务
e.Use(middleware.StaticWithConfig(middleware.StaticConfig{
Skipper: func(c echo.Context) bool {
Skipper: func(c *echo.Context) bool {
// 不处理接口
if strings.HasPrefix(c.Request().RequestURI, "/api") {
return true
@@ -152,11 +146,12 @@ func setupApi(app *orz.App, components *AppComponents) error {
}
return false
},
Root: ".",
Index: "index.html",
HTML5: true,
Browse: false,
IgnoreBase: false,
Filesystem: http.Dir(webDir),
Filesystem: os.DirFS(webDir),
}))
customValidator := CustomValidator{Validator: validator.New()}
@@ -209,7 +204,7 @@ func setupApi(app *orz.App, components *AppComponents) error {
adminApi := e.Group("/api/admin")
adminApi.Use(UnifiedAuthMiddleware(components.AccountHandler, components.ApiKeyService))
{
adminApi.GET("/version", func(c echo.Context) error {
adminApi.GET("/version", func(c *echo.Context) error {
return c.JSON(http.StatusOK, orz.Map{
"version": version.GetVersion(),
"agentVersion": version.GetAgentVersion(),
@@ -334,7 +329,7 @@ func initDefaultProperties(ctx context.Context, components *AppComponents, logge
func ErrorHandler(logger *zap.Logger) func(next echo.HandlerFunc) echo.HandlerFunc {
var a = func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
return func(c *echo.Context) error {
if err := next(c); err != nil {
var he *echo.HTTPError
if errors.As(err, &he) {
@@ -479,7 +474,7 @@ func startAgentExpireCheck(ctx context.Context, components *AppComponents, logge
// JWTAuthMiddleware JWT 认证中间件(必须登录)
func JWTAuthMiddleware(accountHandler *handler.AccountHandler) echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
return func(c *echo.Context) error {
// 从 Authorization header 获取 token
authHeader := c.Request().Header.Get("Authorization")
if authHeader == "" {
@@ -513,7 +508,7 @@ func JWTAuthMiddleware(accountHandler *handler.AccountHandler) echo.MiddlewareFu
// OptionalJWTAuthMiddleware 可选 JWT 认证中间件(尝试解析 token,但不强制要求)
func OptionalJWTAuthMiddleware(accountHandler *handler.AccountHandler) echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
return func(c *echo.Context) error {
// 从 Authorization header 获取 token
authHeader := c.Request().Header.Get("Authorization")
if authHeader != "" {
@@ -542,7 +537,7 @@ func OptionalJWTAuthMiddleware(accountHandler *handler.AccountHandler) echo.Midd
// APIKeyAuthMiddleware 使用 API Key 进行认证
func APIKeyAuthMiddleware(apiKeyService *service.ApiKeyService) echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
return func(c *echo.Context) error {
authHeader := c.Request().Header.Get("Authorization")
if authHeader == "" {
return echo.NewHTTPError(http.StatusUnauthorized, "未提供认证令牌")
@@ -567,7 +562,7 @@ func APIKeyAuthMiddleware(apiKeyService *service.ApiKeyService) echo.MiddlewareF
// UnifiedAuthMiddleware 统一认证中间件:优先尝试 JWT Token,失败后尝试 API Key
func UnifiedAuthMiddleware(accountHandler *handler.AccountHandler, apiKeyService *service.ApiKeyService) echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
return func(c *echo.Context) error {
authHeader := c.Request().Header.Get("Authorization")
if authHeader == "" {
return echo.NewHTTPError(http.StatusUnauthorized, "未提供认证令牌")
+9 -9
View File
@@ -5,7 +5,7 @@ import (
"github.com/dushixiang/pika/internal/service"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
)
type AccountHandler struct {
@@ -25,7 +25,7 @@ type LoginRequest struct {
}
// Login 用户登录(Basic Auth)
func (r AccountHandler) Login(c echo.Context) error {
func (r AccountHandler) Login(c *echo.Context) error {
var req LoginRequest
if err := c.Bind(&req); err != nil {
return err
@@ -50,7 +50,7 @@ type OIDCLoginRequest struct {
}
// OIDCLogin OIDC 登录回调
func (r AccountHandler) OIDCLogin(c echo.Context) error {
func (r AccountHandler) OIDCLogin(c *echo.Context) error {
var req OIDCLoginRequest
if err := c.Bind(&req); err != nil {
return err
@@ -69,13 +69,13 @@ func (r AccountHandler) OIDCLogin(c echo.Context) error {
}
// GetAuthConfig 获取认证配置
func (r AccountHandler) GetAuthConfig(c echo.Context) error {
func (r AccountHandler) GetAuthConfig(c *echo.Context) error {
config := r.accountService.GetAuthConfig()
return orz.Ok(c, config)
}
// GetOIDCAuthURL 获取 OIDC 认证 URL
func (r AccountHandler) GetOIDCAuthURL(c echo.Context) error {
func (r AccountHandler) GetOIDCAuthURL(c *echo.Context) error {
authURL, err := r.accountService.GetOIDCAuthURL()
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
@@ -84,7 +84,7 @@ func (r AccountHandler) GetOIDCAuthURL(c echo.Context) error {
}
// GetGitHubAuthURL 获取 GitHub 认证 URL
func (r AccountHandler) GetGitHubAuthURL(c echo.Context) error {
func (r AccountHandler) GetGitHubAuthURL(c *echo.Context) error {
authURL, err := r.accountService.GetGitHubAuthURL()
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
@@ -99,7 +99,7 @@ type GitHubLoginRequest struct {
}
// GitHubLogin GitHub 登录回调
func (r AccountHandler) GitHubLogin(c echo.Context) error {
func (r AccountHandler) GitHubLogin(c *echo.Context) error {
var req GitHubLoginRequest
if err := c.Bind(&req); err != nil {
return err
@@ -118,7 +118,7 @@ func (r AccountHandler) GitHubLogin(c echo.Context) error {
}
// Logout 用户登出
func (r AccountHandler) Logout(c echo.Context) error {
func (r AccountHandler) Logout(c *echo.Context) error {
userID := c.Get("userID")
if userID == nil {
return orz.NewError(401, "未登录")
@@ -138,7 +138,7 @@ func (r AccountHandler) ValidateToken(tokenString string) (*service.JWTClaims, e
}
// GetCurrentUser 获取当前登录用户信息
func (r AccountHandler) GetCurrentUser(c echo.Context) error {
func (r AccountHandler) GetCurrentUser(c *echo.Context) error {
// 从 context 中获取用户信息(由 JWT 中间件设置)
userID := c.Get("userID")
username := c.Get("username")
+16 -16
View File
@@ -10,7 +10,7 @@ import (
"github.com/dushixiang/pika/internal/models"
"github.com/dushixiang/pika/internal/protocol"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
@@ -31,7 +31,7 @@ func SortAgents(agents []models.Agent) {
}
// Paging 探针分页查询(返回完整列表,前端实现过滤)
func (h *AgentHandler) Paging(c echo.Context) error {
func (h *AgentHandler) Paging(c *echo.Context) error {
ctx := c.Request().Context()
// 获取所有探针(管理员接口)
@@ -47,7 +47,7 @@ func (h *AgentHandler) Paging(c echo.Context) error {
}
// GetForAdmin 获取探针详情(管理员接口,显示完整信息)
func (h *AgentHandler) GetForAdmin(c echo.Context) error {
func (h *AgentHandler) GetForAdmin(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -60,7 +60,7 @@ func (h *AgentHandler) GetForAdmin(c echo.Context) error {
}
// GetAdminLatestMetrics 获取探针最新指标(管理员接口,显示完整信息)
func (h *AgentHandler) GetAdminLatestMetrics(c echo.Context) error {
func (h *AgentHandler) GetAdminLatestMetrics(c *echo.Context) error {
id := c.Param("id")
metrics, ok := h.metricService.GetLatestMetrics(id)
@@ -71,7 +71,7 @@ func (h *AgentHandler) GetAdminLatestMetrics(c echo.Context) error {
}
// SendCommand 向探针发送指令
func (h *AgentHandler) SendCommand(c echo.Context) error {
func (h *AgentHandler) SendCommand(c *echo.Context) error {
agentID := c.Param("id")
cmdType := c.QueryParam("type")
@@ -116,7 +116,7 @@ func (h *AgentHandler) SendCommand(c echo.Context) error {
}
// GetAuditResult 获取审计结果(原始数据)
func (h *AgentHandler) GetAuditResult(c echo.Context) error {
func (h *AgentHandler) GetAuditResult(c *echo.Context) error {
agentID := c.Param("id")
ctx := c.Request().Context()
@@ -129,7 +129,7 @@ func (h *AgentHandler) GetAuditResult(c echo.Context) error {
}
// ListAuditResults 获取审计结果列表
func (h *AgentHandler) ListAuditResults(c echo.Context) error {
func (h *AgentHandler) ListAuditResults(c *echo.Context) error {
agentID := c.Param("id")
ctx := c.Request().Context()
@@ -145,7 +145,7 @@ func (h *AgentHandler) ListAuditResults(c echo.Context) error {
}
// UpdateInfo 更新探针信息(名称、标签、到期时间、可见性、权重、备注)
func (h *AgentHandler) UpdateInfo(c echo.Context) error {
func (h *AgentHandler) UpdateInfo(c *echo.Context) error {
agentID := c.Param("id")
var req struct {
@@ -182,7 +182,7 @@ func (h *AgentHandler) UpdateInfo(c echo.Context) error {
}
// GetStatistics 获取探针统计数据
func (h *AgentHandler) GetStatistics(c echo.Context) error {
func (h *AgentHandler) GetStatistics(c *echo.Context) error {
ctx := c.Request().Context()
stats, err := h.agentService.GetStatistics(ctx)
if err != nil {
@@ -193,7 +193,7 @@ func (h *AgentHandler) GetStatistics(c echo.Context) error {
}
// Delete 删除探针
func (h *AgentHandler) Delete(c echo.Context) error {
func (h *AgentHandler) Delete(c *echo.Context) error {
agentID := c.Param("id")
ctx := c.Request().Context()
@@ -246,7 +246,7 @@ func (h *AgentHandler) Delete(c echo.Context) error {
}
// CleanupOrphanedAgentMetrics 手动清除所有已删除探针残留的指标数据
func (h *AgentHandler) CleanupOrphanedAgentMetrics(c echo.Context) error {
func (h *AgentHandler) CleanupOrphanedAgentMetrics(c *echo.Context) error {
ctx := c.Request().Context()
h.logger.Info("开始手动清理残留探针指标数据")
@@ -264,7 +264,7 @@ func (h *AgentHandler) CleanupOrphanedAgentMetrics(c echo.Context) error {
}
// BatchUpdateTags 批量更新探针标签
func (h *AgentHandler) BatchUpdateTags(c echo.Context) error {
func (h *AgentHandler) BatchUpdateTags(c *echo.Context) error {
var req struct {
AgentIDs []string `json:"agentIds"`
Tags []string `json:"tags"`
@@ -300,7 +300,7 @@ func (h *AgentHandler) BatchUpdateTags(c echo.Context) error {
}
// BatchUpdateVisibility 批量更新探针可见性
func (h *AgentHandler) BatchUpdateVisibility(c echo.Context) error {
func (h *AgentHandler) BatchUpdateVisibility(c *echo.Context) error {
var req struct {
AgentIDs []string `json:"agentIds"`
Visibility string `json:"visibility"`
@@ -331,7 +331,7 @@ func (h *AgentHandler) BatchUpdateVisibility(c echo.Context) error {
}
// UpdateTrafficConfig 更新流量配置(管理员)
func (h *AgentHandler) UpdateTrafficConfig(c echo.Context) error {
func (h *AgentHandler) UpdateTrafficConfig(c *echo.Context) error {
agentID := c.Param("id")
var req struct {
@@ -354,7 +354,7 @@ func (h *AgentHandler) UpdateTrafficConfig(c echo.Context) error {
}
// GetTrafficStats 查询流量统计(管理员接口)
func (h *AgentHandler) GetTrafficStats(c echo.Context) error {
func (h *AgentHandler) GetTrafficStats(c *echo.Context) error {
agentID := c.Param("id")
ctx := c.Request().Context()
@@ -367,7 +367,7 @@ func (h *AgentHandler) GetTrafficStats(c echo.Context) error {
}
// ResetAgentTraffic 手动重置流量(管理员)
func (h *AgentHandler) ResetAgentTraffic(c echo.Context) error {
func (h *AgentHandler) ResetAgentTraffic(c *echo.Context) error {
agentID := c.Param("id")
ctx := c.Request().Context()
+6 -6
View File
@@ -9,19 +9,19 @@ import (
"github.com/dushixiang/pika/internal/assets"
"github.com/dushixiang/pika/pkg/version"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
// GetAgentVersion 获取 Agent 版本信息
func (h *AgentHandler) GetAgentVersion(c echo.Context) error {
func (h *AgentHandler) GetAgentVersion(c *echo.Context) error {
return orz.Ok(c, orz.Map{
"version": version.GetAgentVersion(),
})
}
// DownloadAgent 下载 Agent 二进制文件
func (h *AgentHandler) DownloadAgent(c echo.Context) error {
func (h *AgentHandler) DownloadAgent(c *echo.Context) error {
filename := c.Param("filename")
if filename == "" || strings.ContainsAny(filename, `/\`) {
return orz.NewError(400, "无效的 Agent 文件名")
@@ -63,7 +63,7 @@ func (h *AgentHandler) DownloadAgent(c echo.Context) error {
}
// getServerURL 获取服务器地址(仅从配置读取)
func (h *AgentHandler) getServerURL(c echo.Context) string {
func (h *AgentHandler) getServerURL(c *echo.Context) string {
// 优先读取配置的服务端地址
config, err := h.propertyService.GetAgentInstallConfig(c.Request().Context())
if err == nil && config.ServerURL != "" {
@@ -80,7 +80,7 @@ func bashSingleQuote(value string) string {
return "'" + strings.ReplaceAll(value, "'", "'\"'\"'") + "'"
}
func (h *AgentHandler) GetServerUrl(c echo.Context) error {
func (h *AgentHandler) GetServerUrl(c *echo.Context) error {
serverUrl := h.getServerURL(c)
return orz.Ok(c, orz.Map{
"serverUrl": serverUrl,
@@ -88,7 +88,7 @@ func (h *AgentHandler) GetServerUrl(c echo.Context) error {
}
// GetInstallScript 生成自动安装脚本
func (h *AgentHandler) GetInstallScript(c echo.Context) error {
func (h *AgentHandler) GetInstallScript(c *echo.Context) error {
token := c.QueryParam("token")
if token == "" {
return orz.NewError(400, "token不能为空")
+4 -4
View File
@@ -7,7 +7,7 @@ import (
"github.com/dushixiang/pika/internal/utils"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
)
var validMetricTypes = map[string]struct{}{
@@ -93,7 +93,7 @@ func validateMetricType(metricType string) error {
}
// GetMetrics 获取探针聚合指标(公开接口,已登录返回全部,未登录返回公开可见)
func (h *AgentHandler) GetMetrics(c echo.Context) error {
func (h *AgentHandler) GetMetrics(c *echo.Context) error {
shortID := c.Param("id")
ctx := c.Request().Context()
@@ -132,7 +132,7 @@ func (h *AgentHandler) GetMetrics(c echo.Context) error {
}
// GetLatestMetrics 获取探针最新指标(公开接口,已登录返回全部,未登录返回公开可见)
func (h *AgentHandler) GetLatestMetrics(c echo.Context) error {
func (h *AgentHandler) GetLatestMetrics(c *echo.Context) error {
shortID := c.Param("id")
ctx := c.Request().Context()
@@ -156,7 +156,7 @@ func (h *AgentHandler) GetLatestMetrics(c echo.Context) error {
}
// GetAvailableNetworkInterfaces 获取探针的可用网卡列表(公开接口,已登录返回全部,未登录返回公开可见)
func (h *AgentHandler) GetAvailableNetworkInterfaces(c echo.Context) error {
func (h *AgentHandler) GetAvailableNetworkInterfaces(c *echo.Context) error {
shortID := c.Param("id")
ctx := c.Request().Context()
+4 -4
View File
@@ -4,12 +4,12 @@ import (
"github.com/dushixiang/pika/internal/models"
"github.com/dushixiang/pika/internal/utils"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"gorm.io/datatypes"
)
// Get 获取探针详情(公开接口,已登录返回全部,未登录返回公开可见)
func (h *AgentHandler) Get(c echo.Context) error {
func (h *AgentHandler) Get(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -36,7 +36,7 @@ func (h *AgentHandler) Get(c echo.Context) error {
}
// GetAgents 获取探针列表(公开接口,已登录返回全部,未登录返回公开可见)
func (h *AgentHandler) GetAgents(c echo.Context) error {
func (h *AgentHandler) GetAgents(c *echo.Context) error {
ctx := c.Request().Context()
// 根据认证状态返回相应的探针列表
@@ -93,7 +93,7 @@ func (h *AgentHandler) buildAgentListItem(agent models.Agent, isAuthenticated bo
}
// GetTags 获取所有探针的标签
func (h *AgentHandler) GetTags(c echo.Context) error {
func (h *AgentHandler) GetTags(c *echo.Context) error {
ctx := c.Request().Context()
tags, err := h.agentService.GetAllTags(ctx)
+2 -2
View File
@@ -9,12 +9,12 @@ import (
"github.com/dushixiang/pika/internal/protocol"
ws "github.com/dushixiang/pika/internal/websocket"
"github.com/gorilla/websocket"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
// HandleWebSocket 处理WebSocket连接
func (h *AgentHandler) HandleWebSocket(c echo.Context) error {
func (h *AgentHandler) HandleWebSocket(c *echo.Context) error {
conn, err := h.upgrader.Upgrade(c.Response(), c.Request(), nil)
if err != nil {
h.logger.Error("failed to upgrade websocket", zap.Error(err))
+3 -3
View File
@@ -3,7 +3,7 @@ package handler
import (
"github.com/dushixiang/pika/internal/service"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
@@ -20,7 +20,7 @@ func NewAlertHandler(logger *zap.Logger, alertService *service.AlertService) *Al
}
// ListAlertRecords 列出告警记录
func (h *AlertHandler) ListAlertRecords(c echo.Context) error {
func (h *AlertHandler) ListAlertRecords(c *echo.Context) error {
agentID := c.QueryParam("agentId")
pr := orz.GetPageRequest(c, "createdAt", "firedAt")
@@ -43,7 +43,7 @@ func (h *AlertHandler) ListAlertRecords(c echo.Context) error {
}
// ClearAlertRecords 清空告警记录
func (h *AlertHandler) ClearAlertRecords(c echo.Context) error {
func (h *AlertHandler) ClearAlertRecords(c *echo.Context) error {
if err := h.alertService.Clear(c.Request().Context()); err != nil {
h.logger.Error("清空告警记录失败", zap.Error(err))
return orz.NewError(500, "清空告警记录失败")
+10 -10
View File
@@ -5,7 +5,7 @@ import (
"github.com/dushixiang/pika/internal/service"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
@@ -33,7 +33,7 @@ type UpdateApiKeyNameRequest struct {
}
// Paging API密钥分页查询
func (r ApiKeyHandler) Paging(c echo.Context) error {
func (r ApiKeyHandler) Paging(c *echo.Context) error {
name := c.QueryParam("name")
apiKeyType := c.QueryParam("type")
@@ -62,7 +62,7 @@ func (r ApiKeyHandler) Paging(c echo.Context) error {
}
// Create 生成API密钥(仅限通信密钥 type=agent)
func (r ApiKeyHandler) Create(c echo.Context) error {
func (r ApiKeyHandler) Create(c *echo.Context) error {
// API Key 不能创建其他 API Key
if c.Get("authType") == "api_key" {
return echo.NewHTTPError(http.StatusForbidden, "API Key 不能创建其他 API Key")
@@ -93,7 +93,7 @@ func (r ApiKeyHandler) Create(c echo.Context) error {
}
// CreateAdmin 生成管理 API Key(type=admin,完整 key 仅创建时返回一次)
func (r ApiKeyHandler) CreateAdmin(c echo.Context) error {
func (r ApiKeyHandler) CreateAdmin(c *echo.Context) error {
// API Key 不能创建其他 API Key
if c.Get("authType") == "api_key" {
return echo.NewHTTPError(http.StatusForbidden, "API Key 不能创建其他 API Key")
@@ -120,7 +120,7 @@ func (r ApiKeyHandler) CreateAdmin(c echo.Context) error {
}
// Get 获取API密钥详情
func (r ApiKeyHandler) Get(c echo.Context) error {
func (r ApiKeyHandler) Get(c *echo.Context) error {
// API Key 不能查看其他 API Key 的完整值
if c.Get("authType") == "api_key" {
return echo.NewHTTPError(http.StatusForbidden, "API Key 不能查看其他 API Key")
@@ -141,7 +141,7 @@ func (r ApiKeyHandler) Get(c echo.Context) error {
}
// GetRaw 获取API密钥完整值(仅在生成安装命令等场景使用)
func (r ApiKeyHandler) GetRaw(c echo.Context) error {
func (r ApiKeyHandler) GetRaw(c *echo.Context) error {
// 仅 JWT 认证可用
if c.Get("authType") == "api_key" {
return echo.NewHTTPError(http.StatusForbidden, "API Key 不能查看其他 API Key")
@@ -167,7 +167,7 @@ func (r ApiKeyHandler) GetRaw(c echo.Context) error {
}
// Update 更新API密钥名称
func (r ApiKeyHandler) Update(c echo.Context) error {
func (r ApiKeyHandler) Update(c *echo.Context) error {
// API Key 不能修改其他 API Key
if c.Get("authType") == "api_key" {
return echo.NewHTTPError(http.StatusForbidden, "API Key 不能修改其他 API Key")
@@ -193,7 +193,7 @@ func (r ApiKeyHandler) Update(c echo.Context) error {
}
// Delete 删除API密钥
func (r ApiKeyHandler) Delete(c echo.Context) error {
func (r ApiKeyHandler) Delete(c *echo.Context) error {
// API Key 不能删除其他 API Key
if c.Get("authType") == "api_key" {
return echo.NewHTTPError(http.StatusForbidden, "API Key 不能删除其他 API Key")
@@ -211,7 +211,7 @@ func (r ApiKeyHandler) Delete(c echo.Context) error {
}
// Enable 启用API密钥
func (r ApiKeyHandler) Enable(c echo.Context) error {
func (r ApiKeyHandler) Enable(c *echo.Context) error {
// API Key 不能启用/禁用其他 API Key
if c.Get("authType") == "api_key" {
return echo.NewHTTPError(http.StatusForbidden, "API Key 不能启用/禁用其他 API Key")
@@ -229,7 +229,7 @@ func (r ApiKeyHandler) Enable(c echo.Context) error {
}
// Disable 禁用API密钥
func (r ApiKeyHandler) Disable(c echo.Context) error {
func (r ApiKeyHandler) Disable(c *echo.Context) error {
// API Key 不能启用/禁用其他 API Key
if c.Get("authType") == "api_key" {
return echo.NewHTTPError(http.StatusForbidden, "API Key 不能启用/禁用其他 API Key")
+10 -10
View File
@@ -7,7 +7,7 @@ import (
"github.com/dushixiang/pika/internal/service"
"github.com/go-orz/orz"
"github.com/google/uuid"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
@@ -53,7 +53,7 @@ type UpdateConfigRequest struct {
}
// Paging DDNS 配置分页查询
func (h *DDNSHandler) Paging(c echo.Context) error {
func (h *DDNSHandler) Paging(c *echo.Context) error {
agentID := c.QueryParam("agentId")
name := c.QueryParam("name")
@@ -80,7 +80,7 @@ func (h *DDNSHandler) Paging(c echo.Context) error {
}
// Create 创建 DDNS 配置
func (h *DDNSHandler) Create(c echo.Context) error {
func (h *DDNSHandler) Create(c *echo.Context) error {
var req CreateConfigRequest
if err := c.Bind(&req); err != nil {
return err
@@ -144,7 +144,7 @@ func (h *DDNSHandler) Create(c echo.Context) error {
}
// Get 获取 DDNS 配置详情
func (h *DDNSHandler) Get(c echo.Context) error {
func (h *DDNSHandler) Get(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -158,7 +158,7 @@ func (h *DDNSHandler) Get(c echo.Context) error {
}
// Update 更新 DDNS 配置
func (h *DDNSHandler) Update(c echo.Context) error {
func (h *DDNSHandler) Update(c *echo.Context) error {
id := c.Param("id")
var req UpdateConfigRequest
@@ -200,7 +200,7 @@ func (h *DDNSHandler) Update(c echo.Context) error {
}
// Delete 删除 DDNS 配置
func (h *DDNSHandler) Delete(c echo.Context) error {
func (h *DDNSHandler) Delete(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -213,7 +213,7 @@ func (h *DDNSHandler) Delete(c echo.Context) error {
}
// Enable 启用 DDNS 配置
func (h *DDNSHandler) Enable(c echo.Context) error {
func (h *DDNSHandler) Enable(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -226,7 +226,7 @@ func (h *DDNSHandler) Enable(c echo.Context) error {
}
// Disable 禁用 DDNS 配置
func (h *DDNSHandler) Disable(c echo.Context) error {
func (h *DDNSHandler) Disable(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -239,7 +239,7 @@ func (h *DDNSHandler) Disable(c echo.Context) error {
}
// GetRecords 获取 DDNS 更新记录
func (h *DDNSHandler) GetRecords(c echo.Context) error {
func (h *DDNSHandler) GetRecords(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -257,7 +257,7 @@ func (h *DDNSHandler) GetRecords(c echo.Context) error {
}
// TriggerUpdate 手动触发 DDNS 更新
func (h *DDNSHandler) TriggerUpdate(c echo.Context) error {
func (h *DDNSHandler) TriggerUpdate(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
+4 -4
View File
@@ -7,7 +7,7 @@ import (
"github.com/dushixiang/pika/internal/models"
"github.com/dushixiang/pika/internal/service"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
@@ -69,7 +69,7 @@ func maskSensitiveData(config map[string]interface{}) map[string]interface{} {
}
// GetAll 获取所有 DNS Provider 配置(脱敏)
func (h *DNSProviderHandler) GetAll(c echo.Context) error {
func (h *DNSProviderHandler) GetAll(c *echo.Context) error {
ctx := c.Request().Context()
providers, err := h.propertyService.GetDNSProviderConfigs(ctx)
@@ -92,7 +92,7 @@ func (h *DNSProviderHandler) GetAll(c echo.Context) error {
}
// Upsert 创建或更新 DNS Provider 配置
func (h *DNSProviderHandler) Upsert(c echo.Context) error {
func (h *DNSProviderHandler) Upsert(c *echo.Context) error {
ctx := c.Request().Context()
var req DNSProviderRequest
@@ -131,7 +131,7 @@ func (h *DNSProviderHandler) Upsert(c echo.Context) error {
}
// Delete 删除 DNS Provider 配置
func (h *DNSProviderHandler) Delete(c echo.Context) error {
func (h *DNSProviderHandler) Delete(c *echo.Context) error {
ctx := c.Request().Context()
provider := c.Param("provider")
+10 -10
View File
@@ -4,7 +4,7 @@ import (
"github.com/dushixiang/pika/internal/service"
"github.com/dushixiang/pika/internal/utils"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
@@ -24,7 +24,7 @@ func NewMonitorHandler(logger *zap.Logger, monitorService *service.MonitorServic
}
}
func (h *MonitorHandler) List(c echo.Context) error {
func (h *MonitorHandler) List(c *echo.Context) error {
keyword := c.QueryParam("keyword")
enabled := c.QueryParam("enabled")
@@ -76,7 +76,7 @@ func (h *MonitorHandler) List(c echo.Context) error {
return orz.Ok(c, page)
}
func (h *MonitorHandler) Create(c echo.Context) error {
func (h *MonitorHandler) Create(c *echo.Context) error {
var req service.MonitorTaskRequest
if err := c.Bind(&req); err != nil {
return orz.NewError(400, "请求参数错误")
@@ -91,7 +91,7 @@ func (h *MonitorHandler) Create(c echo.Context) error {
return orz.Ok(c, item)
}
func (h *MonitorHandler) Get(c echo.Context) error {
func (h *MonitorHandler) Get(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -103,7 +103,7 @@ func (h *MonitorHandler) Get(c echo.Context) error {
return orz.Ok(c, item)
}
func (h *MonitorHandler) Update(c echo.Context) error {
func (h *MonitorHandler) Update(c *echo.Context) error {
id := c.Param("id")
var req service.MonitorTaskRequest
@@ -120,7 +120,7 @@ func (h *MonitorHandler) Update(c echo.Context) error {
return orz.Ok(c, item)
}
func (h *MonitorHandler) Delete(c echo.Context) error {
func (h *MonitorHandler) Delete(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -140,7 +140,7 @@ func (h *MonitorHandler) Delete(c echo.Context) error {
}
// GetMonitors 获取所有监控统计数据
func (h *MonitorHandler) GetMonitors(c echo.Context) error {
func (h *MonitorHandler) GetMonitors(c *echo.Context) error {
ctx := c.Request().Context()
stats, err := h.monitorService.ListByAuth(ctx, utils.IsAuthenticated(c))
if err != nil {
@@ -151,7 +151,7 @@ func (h *MonitorHandler) GetMonitors(c echo.Context) error {
}
// GetStatsByID 获取指定监控任务的统计数据(公开接口,已登录返回全部,未登录返回公开可见)
func (h *MonitorHandler) GetStatsByID(c echo.Context) error {
func (h *MonitorHandler) GetStatsByID(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -169,7 +169,7 @@ func (h *MonitorHandler) GetStatsByID(c echo.Context) error {
}
// GetAgentStatsByID 获取指定监控任务各探针的统计数据(公开接口,已登录返回全部,未登录返回公开可见)
func (h *MonitorHandler) GetAgentStatsByID(c echo.Context) error {
func (h *MonitorHandler) GetAgentStatsByID(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
@@ -186,7 +186,7 @@ func (h *MonitorHandler) GetAgentStatsByID(c echo.Context) error {
}
// GetHistoryByID 获取指定监控任务的历史响应时间数据(公开接口,已登录返回全部,未登录返回公开可见)
func (h *MonitorHandler) GetHistoryByID(c echo.Context) error {
func (h *MonitorHandler) GetHistoryByID(c *echo.Context) error {
id := c.Param("id")
ctx := c.Request().Context()
+5 -5
View File
@@ -9,7 +9,7 @@ import (
"github.com/dushixiang/pika/internal/models"
"github.com/dushixiang/pika/internal/service"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
@@ -28,7 +28,7 @@ func NewPropertyHandler(logger *zap.Logger, service *service.PropertyService, no
}
// GetProperty 获取属性(返回 JSON 值)
func (h *PropertyHandler) GetProperty(c echo.Context) error {
func (h *PropertyHandler) GetProperty(c *echo.Context) error {
id := c.Param("id")
property, err := h.service.Get(c.Request().Context(), id)
@@ -54,7 +54,7 @@ func (h *PropertyHandler) GetProperty(c echo.Context) error {
}
// SetProperty 设置属性
func (h *PropertyHandler) SetProperty(c echo.Context) error {
func (h *PropertyHandler) SetProperty(c *echo.Context) error {
id := c.Param("id")
var req struct {
@@ -100,7 +100,7 @@ func (h *PropertyHandler) SetProperty(c echo.Context) error {
}
// GetLogo 获取系统 Logo(公开访问,返回图片文件流)
func (h *PropertyHandler) GetLogo(c echo.Context) error {
func (h *PropertyHandler) GetLogo(c *echo.Context) error {
sysConfig, err := h.service.GetSystemConfig(c.Request().Context())
if err != nil {
// 如果配置不存在,返回 404
@@ -168,7 +168,7 @@ func (h *PropertyHandler) GetLogo(c echo.Context) error {
}
// TestNotificationChannel 测试通知渠道(从数据库读取配置)
func (h *PropertyHandler) TestNotificationChannel(c echo.Context) error {
func (h *PropertyHandler) TestNotificationChannel(c *echo.Context) error {
channelType := c.Param("type")
if channelType == "" {
return orz.NewError(400, "缺少渠道类型参数")
+6 -6
View File
@@ -4,7 +4,7 @@ import (
"github.com/dushixiang/pika/internal/models"
"github.com/dushixiang/pika/internal/service"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
@@ -24,7 +24,7 @@ func NewSSHLoginHandler(logger *zap.Logger, service *service.SSHLoginService) *S
// GetConfig 获取SSH登录监控配置
// GET /api/agents/:id/ssh-login/config
func (h *SSHLoginHandler) GetConfig(c echo.Context) error {
func (h *SSHLoginHandler) GetConfig(c *echo.Context) error {
agentID := c.Param("id")
if agentID == "" {
return orz.NewError(400, "探针ID不能为空")
@@ -41,7 +41,7 @@ func (h *SSHLoginHandler) GetConfig(c echo.Context) error {
// UpdateConfig 更新SSH登录监控配置
// POST /api/agents/:id/ssh-login/config
func (h *SSHLoginHandler) UpdateConfig(c echo.Context) error {
func (h *SSHLoginHandler) UpdateConfig(c *echo.Context) error {
agentID := c.Param("id")
var req models.SSHLoginConfigData
@@ -60,7 +60,7 @@ func (h *SSHLoginHandler) UpdateConfig(c echo.Context) error {
// ListEvents 查询SSH登录事件
// GET /api/agents/:id/ssh-login/events
func (h *SSHLoginHandler) ListEvents(c echo.Context) error {
func (h *SSHLoginHandler) ListEvents(c *echo.Context) error {
agentID := c.Param("id")
// 获取分页参数
@@ -83,7 +83,7 @@ func (h *SSHLoginHandler) ListEvents(c echo.Context) error {
// GetEvent 获取单个SSH登录事件
// GET /api/ssh-login/events/:id
func (h *SSHLoginHandler) GetEvent(c echo.Context) error {
func (h *SSHLoginHandler) GetEvent(c *echo.Context) error {
eventID := c.Param("id")
if eventID == "" {
return orz.NewError(400, "事件ID不能为空")
@@ -105,7 +105,7 @@ func (h *SSHLoginHandler) GetEvent(c echo.Context) error {
// DeleteEvents 删除探针的所有SSH登录事件
// DELETE /api/agents/:id/ssh-login/events
func (h *SSHLoginHandler) DeleteEvents(c echo.Context) error {
func (h *SSHLoginHandler) DeleteEvents(c *echo.Context) error {
agentID := c.Param("id")
ctx := c.Request().Context()
+5 -5
View File
@@ -4,7 +4,7 @@ import (
"github.com/dushixiang/pika/internal/models"
"github.com/dushixiang/pika/internal/service"
"github.com/go-orz/orz"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
"go.uber.org/zap"
)
@@ -22,7 +22,7 @@ func NewTamperHandler(logger *zap.Logger, tamperService *service.TamperService)
// UpdateConfig 更新探针的防篡改配置
// POST /api/agents/:id/tamper/config
func (h *TamperHandler) UpdateConfig(c echo.Context) error {
func (h *TamperHandler) UpdateConfig(c *echo.Context) error {
agentID := c.Param("id")
var req models.TamperProtectConfigData
@@ -42,7 +42,7 @@ func (h *TamperHandler) UpdateConfig(c echo.Context) error {
// GetConfig 获取探针的防篡改配置
// GET /api/agents/:id/tamper/config
func (h *TamperHandler) GetConfig(c echo.Context) error {
func (h *TamperHandler) GetConfig(c *echo.Context) error {
agentID := c.Param("id")
config, err := h.tamperService.GetConfigByAgentID(c.Request().Context(), agentID)
@@ -56,7 +56,7 @@ func (h *TamperHandler) GetConfig(c echo.Context) error {
// ListEvents 获取探针的防篡改事件
// GET /api/agents/:id/tamper/events
func (h *TamperHandler) ListEvents(c echo.Context) error {
func (h *TamperHandler) ListEvents(c *echo.Context) error {
agentID := c.Param("id")
// 获取分页参数
@@ -77,7 +77,7 @@ func (h *TamperHandler) ListEvents(c echo.Context) error {
return orz.Ok(c, page)
}
func (h *TamperHandler) DeleteEvents(c echo.Context) error {
func (h *TamperHandler) DeleteEvents(c *echo.Context) error {
agentID := c.Param("id")
err := h.tamperService.DeleteEventsByAgentID(c.Request().Context(), agentID)
if err != nil {
+2 -2
View File
@@ -1,9 +1,9 @@
package utils
import "github.com/labstack/echo/v4"
import "github.com/labstack/echo/v5"
// IsAuthenticated 检查用户是否已登录
func IsAuthenticated(c echo.Context) bool {
func IsAuthenticated(c *echo.Context) bool {
authenticated, _ := c.Get("authenticated").(bool)
return authenticated
}
+1 -1
View File
@@ -11,7 +11,7 @@ import (
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
zhTranslations "github.com/go-playground/validator/v10/translations/zh"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v5"
)
type CustomValidator struct {