Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions app.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package forge

import (
"context"
"net/http"
"os"
"time"
)
Expand Down Expand Up @@ -85,12 +86,37 @@ type AppConfig struct {
EnablePprof bool // Enable pprof profiling endpoints at /_/debug/pprof (default: false)
PprofPrefix string // URL prefix for pprof endpoints (default: "/_/debug/pprof")

// PprofGuard authorizes access to the pprof endpoints. It is called before
// every pprof request; return false to deny (the caller gets a 404, so the
// endpoints are not discoverable).
//
// Strongly recommended whenever EnablePprof is on outside a local dev loop.
// The endpoints expose heap and goroutine contents, allow a caller to pin a
// CPU for an arbitrary duration, and /cmdline discloses the process argv —
// which commonly carries credentials passed as flags.
//
// Nil means no authorization check.
PprofGuard func(*http.Request) bool

ErrorHandler ErrorHandler

// Server
HTTPAddress string // Default: ":8080"
HTTPTimeout time.Duration // Default: 30s

// MaxRequestBodySize caps request bodies in bytes. Bodies larger than this
// are rejected instead of being buffered, so a single request cannot drive
// unbounded allocation. Default: 10 MiB (router.DefaultMaxRequestBodySize).
// Negative disables the limit; override per route with WithMaxBodySize.
MaxRequestBodySize int64

// WebSocketOrigins is the Origin allow-list for WebSocket upgrades. Empty
// means same-origin only — browsers send cookies with upgrades but do not
// apply CORS to them, so an open upgrade endpoint is hijackable by any site
// the user visits. Entries may be "https://app.example.com", "app.example.com",
// "*.example.com", or "*" to allow any origin.
WebSocketOrigins []string

// Shutdown
ShutdownTimeout time.Duration // Default: 30s
ShutdownSignals []os.Signal // Default: SIGINT, SIGTERM
Expand Down Expand Up @@ -378,6 +404,40 @@ func WithPprofPrefix(prefix string) AppOption {
}
}

// WithPprofGuard restricts access to the pprof endpoints. The guard runs before
// every pprof request; returning false yields a 404 so the endpoints stay
// undiscoverable. Implies WithPprof().
//
// Use this whenever profiling is enabled on anything reachable beyond localhost:
// the endpoints dump heap and goroutine state, let a caller pin a CPU for an
// arbitrary duration, and /cmdline reveals the process argv.
//
// forge.WithPprofGuard(func(r *http.Request) bool {
// return subtle.ConstantTimeCompare(
// []byte(r.Header.Get("X-Debug-Token")), []byte(token)) == 1
// })
func WithPprofGuard(guard func(*http.Request) bool) AppOption {
return func(c *AppConfig) {
c.EnablePprof = true
c.PprofGuard = guard
}
}

// WithMaxRequestBodySize caps request bodies app-wide, in bytes. Defaults to
// 10 MiB; pass a negative value to disable the limit. Override per route with
// WithMaxBodySize.
func WithMaxRequestBodySize(bytes int64) AppOption {
return func(c *AppConfig) { c.MaxRequestBodySize = bytes }
}

// WithWebSocketOrigins sets the Origin allow-list for WebSocket upgrades.
// Without it only same-origin upgrades are accepted — see AppConfig.WebSocketOrigins.
func WithWebSocketOrigins(origins ...string) AppOption {
return func(c *AppConfig) {
c.WebSocketOrigins = append(c.WebSocketOrigins, origins...)
}
}

// NewApp creates a new Forge application.
func NewApp(config AppConfig) App {
return newApp(config)
Expand Down
32 changes: 32 additions & 0 deletions app_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,22 @@ func newApp(config AppConfig) *app {
routerOpts = append(routerOpts, internalrouter.WithHTTPAddress(config.HTTPAddress))
}

// Internal error text is echoed to clients only outside production, where
// it aids debugging; in production a 500 carries no detail. Logs always have
// the full error either way.
shared.SetExposeInternalErrors(config.Environment != "production")

// Cap request bodies. Zero leaves the router's own default in place.
if config.MaxRequestBodySize != 0 {
routerOpts = append(routerOpts, internalrouter.WithMaxRequestBodySize(config.MaxRequestBodySize))
}

// Restrict WebSocket upgrades to the configured origins. When unset the
// router enforces same-origin, which is the safe default.
if len(config.WebSocketOrigins) > 0 {
routerOpts = append(routerOpts, internalrouter.WithWebSocketOrigins(config.WebSocketOrigins...))
}

// Enable panic recovery to prevent unhandled panics from crashing the server
routerOpts = append(routerOpts, internalrouter.WithRecovery())

Expand Down Expand Up @@ -952,6 +968,14 @@ func (a *app) setupPprofEndpoints() error {
// Single wildcard route handles everything: index page, specific
// handlers, and named profiles (heap, goroutine, etc.).
if err := a.router.Handle(prefix+"/*", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Authorize before doing anything else. 404 rather than 403 so the
// endpoints are not discoverable by an unauthorized caller.
if a.config.PprofGuard != nil && !a.config.PprofGuard(r) {
http.NotFound(w, r)

return
}

// Strip prefix to get the sub-path (e.g. "/heap", "/profile", "").
sub := strings.TrimPrefix(r.URL.Path, prefix)

Expand All @@ -975,8 +999,16 @@ func (a *app) setupPprofEndpoints() error {
return err
}

if a.config.PprofGuard == nil {
a.logger.Warn("pprof endpoints enabled without PprofGuard: heap, goroutine and cmdline data are unauthenticated",
F("prefix", prefix),
F("environment", a.config.Environment),
)
}

a.logger.Info("pprof profiling endpoints enabled",
F("prefix", prefix),
F("guarded", a.config.PprofGuard != nil),
)

return nil
Expand Down
2 changes: 1 addition & 1 deletion examples/cors_preflight/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ require (
github.com/uptrace/bunrouter v1.0.23 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xraph/confy v0.5.2 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
github.com/xraph/vessel v1.0.2 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
Expand Down
4 changes: 2 additions & 2 deletions examples/cors_preflight/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,8 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xraph/confy v0.5.2 h1:YlZDDG2sZWyiSm4yjXTLQ7RFdy/3izg/plJh1g9guEA=
github.com/xraph/confy v0.5.2/go.mod h1:FPupuOi04fSgh8pKb9BOTPxyzq9WhIncfY9aDH0bLO8=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
Expand Down
2 changes: 1 addition & 1 deletion examples/di-patterns/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ require (
github.com/uptrace/bunrouter v1.0.23 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xraph/confy v0.5.2 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
github.com/xraph/vessel v1.0.2 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
Expand Down
4 changes: 2 additions & 2 deletions examples/di-patterns/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,8 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xraph/confy v0.5.2 h1:YlZDDG2sZWyiSm4yjXTLQ7RFdy/3izg/plJh1g9guEA=
github.com/xraph/confy v0.5.2/go.mod h1:FPupuOi04fSgh8pKb9BOTPxyzq9WhIncfY9aDH0bLO8=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
Expand Down
2 changes: 1 addition & 1 deletion examples/farp-auto-detection/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ require (
github.com/xraph/confy v0.5.2 // indirect
github.com/xraph/farp v1.3.0 // indirect
github.com/xraph/farp/discovery v1.2.0 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
github.com/xraph/vessel v1.0.2 // indirect
go.etcd.io/etcd/api/v3 v3.5.17 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.17 // indirect
Expand Down
4 changes: 2 additions & 2 deletions examples/farp-auto-detection/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -296,8 +296,8 @@ github.com/xraph/farp v1.3.0 h1:9eH09TyRglpvyYL2Su4oxcrAaJm6D3Ey4w9vYDVO298=
github.com/xraph/farp v1.3.0/go.mod h1:Nlli8WUsxvQL5wXiJqcAn6OsUHBzKJxrl9JLJ9J6Wqo=
github.com/xraph/farp/discovery v1.2.0 h1:DGUZUGdYUhFxvAzTdPZc+11m1e95LzzEiyfS5Sh8xYA=
github.com/xraph/farp/discovery v1.2.0/go.mod h1:Lx1zYvPRryyzUyVIPidl2XvspeRPRwHPNfPRQWUhRVg=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
Expand Down
2 changes: 1 addition & 1 deletion examples/farp-discovery-example/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ require (
github.com/xraph/confy v0.5.2 // indirect
github.com/xraph/farp v1.3.0 // indirect
github.com/xraph/farp/discovery v1.2.0 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
github.com/xraph/vessel v1.0.2 // indirect
go.etcd.io/etcd/api/v3 v3.5.17 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.17 // indirect
Expand Down
4 changes: 2 additions & 2 deletions examples/farp-discovery-example/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -296,8 +296,8 @@ github.com/xraph/farp v1.3.0 h1:9eH09TyRglpvyYL2Su4oxcrAaJm6D3Ey4w9vYDVO298=
github.com/xraph/farp v1.3.0/go.mod h1:Nlli8WUsxvQL5wXiJqcAn6OsUHBzKJxrl9JLJ9J6Wqo=
github.com/xraph/farp/discovery v1.2.0 h1:DGUZUGdYUhFxvAzTdPZc+11m1e95LzzEiyfS5Sh8xYA=
github.com/xraph/farp/discovery v1.2.0/go.mod h1:Lx1zYvPRryyzUyVIPidl2XvspeRPRwHPNfPRQWUhRVg=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
Expand Down
2 changes: 1 addition & 1 deletion examples/file_upload/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ require (
github.com/uptrace/bunrouter v1.0.23 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xraph/confy v0.5.2 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
github.com/xraph/vessel v1.0.2 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
Expand Down
4 changes: 2 additions & 2 deletions examples/file_upload/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,8 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xraph/confy v0.5.2 h1:YlZDDG2sZWyiSm4yjXTLQ7RFdy/3izg/plJh1g9guEA=
github.com/xraph/confy v0.5.2/go.mod h1:FPupuOi04fSgh8pKb9BOTPxyzq9WhIncfY9aDH0bLO8=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-demo/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ require (
github.com/uptrace/bunrouter v1.0.23 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xraph/confy v0.5.2 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
github.com/xraph/vessel v1.0.2 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
Expand Down
4 changes: 2 additions & 2 deletions examples/openapi-demo/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,8 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xraph/confy v0.5.2 h1:YlZDDG2sZWyiSm4yjXTLQ7RFdy/3izg/plJh1g9guEA=
github.com/xraph/confy v0.5.2/go.mod h1:FPupuOi04fSgh8pKb9BOTPxyzq9WhIncfY9aDH0bLO8=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi_complete/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ require (
github.com/uptrace/bunrouter v1.0.23 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xraph/confy v0.5.2 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
github.com/xraph/vessel v1.0.2 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
Expand Down
4 changes: 2 additions & 2 deletions examples/openapi_complete/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,8 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xraph/confy v0.5.2 h1:YlZDDG2sZWyiSm4yjXTLQ7RFdy/3izg/plJh1g9guEA=
github.com/xraph/confy v0.5.2/go.mod h1:FPupuOi04fSgh8pKb9BOTPxyzq9WhIncfY9aDH0bLO8=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi_unified/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ require (
github.com/uptrace/bunrouter v1.0.23 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xraph/confy v0.5.2 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
github.com/xraph/vessel v1.0.2 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
Expand Down
4 changes: 2 additions & 2 deletions examples/openapi_unified/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,8 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xraph/confy v0.5.2 h1:YlZDDG2sZWyiSm4yjXTLQ7RFdy/3izg/plJh1g9guEA=
github.com/xraph/confy v0.5.2/go.mod h1:FPupuOi04fSgh8pKb9BOTPxyzq9WhIncfY9aDH0bLO8=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
Expand Down
2 changes: 1 addition & 1 deletion examples/webtransport/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ require (
github.com/x448/float16 v0.8.4 // indirect
github.com/xraph/confy v0.5.2 // indirect
github.com/xraph/forgeui v1.4.1 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
github.com/xraph/vessel v1.0.2 // indirect
go.opentelemetry.io/otel v1.40.0 // indirect
go.opentelemetry.io/otel/trace v1.40.0 // indirect
Expand Down
4 changes: 2 additions & 2 deletions examples/webtransport/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -288,8 +288,8 @@ github.com/xraph/confy v0.5.2 h1:YlZDDG2sZWyiSm4yjXTLQ7RFdy/3izg/plJh1g9guEA=
github.com/xraph/confy v0.5.2/go.mod h1:FPupuOi04fSgh8pKb9BOTPxyzq9WhIncfY9aDH0bLO8=
github.com/xraph/forgeui v1.4.1 h1:LHK1t/sZ+9zL+MNUZralO9/rc0f5UCa19dpbWTuRMNg=
github.com/xraph/forgeui v1.4.1/go.mod h1:rH/+wb1tt2pXSHotWAvoP+Lt846xlIjuwPDSpS5K5mw=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
Expand Down
2 changes: 1 addition & 1 deletion extensions/auth/examples/auth_example/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ require (
github.com/uptrace/bunrouter v1.0.23 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xraph/confy v0.5.2 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
github.com/xraph/vessel v1.0.2 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
Expand Down
4 changes: 2 additions & 2 deletions extensions/auth/examples/auth_example/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -283,8 +283,8 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xraph/confy v0.5.2 h1:YlZDDG2sZWyiSm4yjXTLQ7RFdy/3izg/plJh1g9guEA=
github.com/xraph/confy v0.5.2/go.mod h1:FPupuOi04fSgh8pKb9BOTPxyzq9WhIncfY9aDH0bLO8=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
Expand Down
2 changes: 1 addition & 1 deletion extensions/cache/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ require (
github.com/spf13/pflag v1.0.9 // indirect
github.com/uptrace/bunrouter v1.0.23 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xraph/go-utils v1.1.1 // indirect
github.com/xraph/go-utils v1.1.2 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
go.yaml.in/yaml/v2 v2.4.3 // indirect
Expand Down
4 changes: 2 additions & 2 deletions extensions/cache/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,8 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xraph/confy v0.5.2 h1:YlZDDG2sZWyiSm4yjXTLQ7RFdy/3izg/plJh1g9guEA=
github.com/xraph/confy v0.5.2/go.mod h1:FPupuOi04fSgh8pKb9BOTPxyzq9WhIncfY9aDH0bLO8=
github.com/xraph/go-utils v1.1.1 h1:k5TOQ1qhXLdEX8W5F60mSuPcFOPc8sBsnhmjx/Kpr5g=
github.com/xraph/go-utils v1.1.1/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/go-utils v1.1.2 h1:h+gLUnSHbtfXPjFjUW2LaUBDi0inMG0pdx/lnvcez3E=
github.com/xraph/go-utils v1.1.2/go.mod h1:tZN4SuGy9otCo6dETp7Cvkgyiy0BvaJaZbTBv4Euvo4=
github.com/xraph/vessel v1.0.2 h1:IeNTwxiFgqH2vW9lh8PNXr1SeGdEc7cxQ6sH7jMokfo=
github.com/xraph/vessel v1.0.2/go.mod h1:5hgrMbuczxu2kRIM3iVJ3wPSb6HOvbMhV4nkRFaPNqs=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
Expand Down
Loading
Loading