mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-21 18:20:50 +00:00
The budget is one number in config/settings.yml. The deadlines that have to cover it are in four other files, none of which anybody edits while thinking about shutdown - so raising the budget passes every test, deploys, and has the cleanup callbacks killed on the next release. Two checks share one arithmetic and one five-second margin. shutdown-budget-overruns-grace compares preStop + drain + server + cleanup against terminationGracePeriodSeconds in the shipped manifest. Those two files are not merely adjacent examples: scripts/k8s/prerun.sh builds the settings-admin ConfigMap out of config/settings.yml and the Deployment mounts it, so the manifest deploys that file. docker-stop-cuts-shutdown-short covers the three ways this container is stopped: `docker stop` in the release workflow, the same in the Makefile, and stop_grace_period on a compose service that runs this repository's own image. A service running a database is not this process and is left alone. The duration is parsed rather than scanned for digits - compose accepts 1m30s, and reading the first number out of it would call ninety seconds one. All three spellings of the deadline are read: --timeout, the deprecated --time, and the short -t. A deadline the check cannot read is reported as no deadline at all, so recognising only one of them would call a correct command broken and send whoever fixed it towards the spelling docker is retiring. The message quotes the flag back in the spelling it was written in, for the same reason: suggesting a flag the line does not use is how a tool teaches people to disbelieve it. What neither covers is `docker rm -f`, which has no deadline to compare against: it is SIGKILL by definition. That gap is deliberate, and it is why the previous commit changed the one place that used it on a container that might still be running. Both report at two levels. A budget that already overruns is an ERROR; one that fits with nothing to spare is a WARN, because it works today and failing the build on a working configuration is how a project teaches people to ignore its warnings. The two are exclusive: an overrun satisfies the headroom condition as well, and an ERROR that always drags a duplicate WARN behind it teaches the same lesson. preStop is in the sum although the shipped manifest has no hook. That is the point - a hook added later is spent before the process is told anything, and a self-check that could not see it would understate the real budget by however long somebody set it to, which is worse than not checking. A hook whose duration cannot be read is reported rather than counted as zero. The fallbacks for fields the settings file leaves out are read from the constants in the scanned tree, not copied here; if they are renamed the run stops instead of going quiet with the wrong numbers. The wording differs by audience on purpose. At run time this is somebody else's deployment under constraints the process cannot see, so the log states a minimum. These checks read files this repository owns, where there is standing to ask for headroom, so they name a target. The table in AGENTS.md is relisted while it is being touched: the two new checks, plus datascope-route-unguarded, which has been missing since it was added. The hard-coded count is gone - it said seven and there were ten, which is what a written-down count does. AGENTS.md and docs/contract.md both sent readers to `go run ./tools/checksilent -h` for the list of checks; that prints command-line flags and has never printed a check, so both now point at runChecks. The yaml parser moves from an indirect requirement to a direct one - it was already in the module graph - and tidy drops four go.sum lines left over from two older releases of core.
156 lines
6.9 KiB
AMPL
156 lines
6.9 KiB
AMPL
module go-admin
|
|
|
|
go 1.26.5
|
|
|
|
require (
|
|
github.com/alibaba/sentinel-golang v1.0.4
|
|
github.com/alibaba/sentinel-golang/pkg/adapters/gin v0.0.0-20241224061304-f4c2c5964666
|
|
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible
|
|
github.com/bitly/go-simplejson v0.5.1
|
|
github.com/bytedance/go-tagexpr/v2 v2.9.11
|
|
github.com/casbin/casbin/v3 v3.8.1
|
|
github.com/gin-gonic/gin v1.12.0
|
|
github.com/glebarez/sqlite v1.11.0
|
|
github.com/go-admin-team/go-admin-core/v2 v2.7.0
|
|
github.com/google/uuid v1.6.0
|
|
github.com/huaweicloud/huaweicloud-sdk-go-obs v3.26.6+incompatible
|
|
github.com/mssola/user_agent v0.6.0
|
|
github.com/opentracing/opentracing-go v1.2.0
|
|
github.com/pkg/errors v0.9.1
|
|
github.com/prometheus/client_golang v1.24.1
|
|
github.com/qiniu/go-sdk/v7 v7.27.0
|
|
github.com/robfig/cron/v3 v3.0.1
|
|
github.com/shirou/gopsutil/v3 v3.24.5
|
|
github.com/spf13/cobra v1.10.2
|
|
github.com/swaggo/files v1.0.1
|
|
github.com/swaggo/gin-swagger v1.6.1
|
|
github.com/swaggo/swag v1.16.6
|
|
github.com/unrolled/secure v1.17.0
|
|
go.yaml.in/yaml/v3 v3.0.5
|
|
golang.org/x/crypto v0.54.0
|
|
gorm.io/driver/mysql v1.6.0
|
|
gorm.io/driver/postgres v1.6.2
|
|
gorm.io/driver/sqlite v1.6.0
|
|
gorm.io/driver/sqlserver v1.6.4
|
|
gorm.io/gorm v1.31.2
|
|
)
|
|
|
|
require (
|
|
dario.cat/mergo v1.0.2 // indirect
|
|
filippo.io/edwards25519 v1.2.0 // indirect
|
|
github.com/BurntSushi/toml v1.5.0 // indirect
|
|
github.com/KyleBanks/depth v1.2.1 // indirect
|
|
github.com/alex-ant/gomath v0.0.0-20160516115720-89013a210a82 // indirect
|
|
github.com/andeya/ameda v1.5.3 // indirect
|
|
github.com/andeya/goutil v1.1.2 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/bmatcuk/doublestar/v4 v4.10.0 // indirect
|
|
github.com/bytedance/gopkg v0.1.4 // indirect
|
|
github.com/bytedance/sonic v1.15.2 // indirect
|
|
github.com/bytedance/sonic/loader v0.5.2 // indirect
|
|
github.com/casbin/gorm-adapter/v3 v3.41.0 // indirect
|
|
github.com/casbin/govaluate v1.10.0 // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/chanxuehong/rand v0.0.0-20211009035549-2f07823e8e99 // indirect
|
|
github.com/chanxuehong/wechat v0.0.0-20230222024006-36f0325263cd // indirect
|
|
github.com/cloudwego/base64x v0.1.7 // indirect
|
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
|
github.com/fsnotify/fsnotify v1.9.0 // indirect
|
|
github.com/gabriel-vasile/mimetype v1.4.15 // indirect
|
|
github.com/ghodss/yaml v1.0.0 // indirect
|
|
github.com/gin-contrib/sse v1.1.1 // indirect
|
|
github.com/glebarez/go-sqlite v1.22.0 // indirect
|
|
github.com/go-ole/go-ole v1.2.6 // indirect
|
|
github.com/go-openapi/jsonpointer v1.0.0 // indirect
|
|
github.com/go-openapi/jsonreference v1.0.0 // indirect
|
|
github.com/go-openapi/spec v0.22.9 // indirect
|
|
github.com/go-openapi/swag/conv v0.28.0 // indirect
|
|
github.com/go-openapi/swag/jsonutils v0.28.0 // indirect
|
|
github.com/go-openapi/swag/loading v0.28.0 // indirect
|
|
github.com/go-openapi/swag/pools v0.28.0 // indirect
|
|
github.com/go-openapi/swag/stringutils v0.28.0 // indirect
|
|
github.com/go-openapi/swag/typeutils v0.28.0 // indirect
|
|
github.com/go-openapi/swag/yamlutils v0.28.0 // indirect
|
|
github.com/go-playground/locales v0.14.1 // indirect
|
|
github.com/go-playground/universal-translator v0.18.1 // indirect
|
|
github.com/go-playground/validator/v10 v10.30.3 // indirect
|
|
github.com/go-sql-driver/mysql v1.10.0 // indirect
|
|
github.com/goccy/go-json v0.10.6 // indirect
|
|
github.com/goccy/go-yaml v1.19.2 // indirect
|
|
github.com/gofrs/flock v0.8.1 // indirect
|
|
github.com/golang-jwt/jwt/v5 v5.3.1 // indirect
|
|
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
|
|
github.com/golang-sql/sqlexp v0.1.0 // indirect
|
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
|
github.com/gorilla/websocket v1.5.3 // indirect
|
|
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.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/json-iterator/go v1.1.12 // indirect
|
|
github.com/klauspost/cpuid/v2 v2.4.0 // indirect
|
|
github.com/leodido/go-urn v1.5.0 // indirect
|
|
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
|
|
github.com/mattn/go-isatty v0.0.24 // indirect
|
|
github.com/mattn/go-sqlite3 v1.14.49 // indirect
|
|
github.com/microsoft/go-mssqldb v1.10.0 // indirect
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
|
github.com/mojocn/base64Captcha v1.3.8 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/ncruces/go-strftime v1.0.0 // indirect
|
|
github.com/nyaruka/phonenumbers v1.2.2 // indirect
|
|
github.com/pelletier/go-toml/v2 v2.4.3 // indirect
|
|
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
|
|
github.com/prometheus/client_model v0.6.2 // indirect
|
|
github.com/prometheus/common v0.70.1 // indirect
|
|
github.com/prometheus/procfs v0.21.1 // indirect
|
|
github.com/quic-go/qpack v0.6.0 // indirect
|
|
github.com/quic-go/quic-go v0.61.0 // indirect
|
|
github.com/redis/go-redis/v9 v9.22.0 // indirect
|
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
|
github.com/shamsher31/goimgext v1.0.0 // indirect
|
|
github.com/shoenig/go-m1cpu v0.1.6 // indirect
|
|
github.com/shopspring/decimal v1.4.0 // indirect
|
|
github.com/sirupsen/logrus v1.9.4 // indirect
|
|
github.com/spf13/cast v1.7.1 // indirect
|
|
github.com/spf13/pflag v1.0.10 // indirect
|
|
github.com/tklauser/go-sysconf v0.3.12 // indirect
|
|
github.com/tklauser/numcpus v0.6.1 // indirect
|
|
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
|
github.com/ugorji/go/codec v1.3.2 // indirect
|
|
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
|
go.mongodb.org/mongo-driver/v2 v2.8.0 // indirect
|
|
go.uber.org/atomic v1.11.0 // indirect
|
|
go.uber.org/multierr v1.11.0 // indirect
|
|
go.uber.org/zap v1.27.1 // indirect
|
|
golang.org/x/arch v0.30.0 // indirect
|
|
golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 // indirect
|
|
golang.org/x/image v0.41.0 // indirect
|
|
golang.org/x/mod v0.38.0 // indirect
|
|
golang.org/x/net v0.57.0 // indirect
|
|
golang.org/x/sync v0.22.0 // indirect
|
|
golang.org/x/sys v0.47.0 // indirect
|
|
golang.org/x/text v0.40.0 // indirect
|
|
golang.org/x/time v0.15.0 // indirect
|
|
golang.org/x/tools v0.48.0 // indirect
|
|
google.golang.org/protobuf v1.36.11 // indirect
|
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
|
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
gorm.io/plugin/dbresolver v1.6.2 // indirect
|
|
gorm.io/plugin/soft_delete v1.2.1 // indirect
|
|
modernc.org/fileutil v1.3.40 // indirect
|
|
modernc.org/libc v1.67.4 // indirect
|
|
modernc.org/mathutil v1.7.1 // indirect
|
|
modernc.org/memory v1.11.0 // indirect
|
|
modernc.org/sqlite v1.42.2 // indirect
|
|
)
|
|
|
|
//replace (
|
|
// github.com/go-admin-team/go-admin-core v1.5.2-0.20231103105356-84418ed9252c => ../go-admin-core
|
|
// github.com/go-admin-team/go-admin-core/sdk v1.5.2-0.20231103105356-84418ed9252c => ../go-admin-core/sdk
|
|
//)
|