Add panic recovery and request size limit

This commit is contained in:
2026-03-05 06:32:26 +00:00
parent df6b677a15
commit 214e63b0c5
9 changed files with 754 additions and 13 deletions

View File

@@ -176,15 +176,31 @@ func main() {
)
}
// Build handler chain: logging -> tracing -> metrics -> rate limiting -> auth -> routes
handler := loggingMiddleware(
observability.TracingMiddleware(
observability.MetricsMiddleware(
rateLimitMiddleware.Handler(authMiddleware.Handler(mux)),
metricsRegistry,
tracerProvider,
// Determine max request body size
maxRequestBodySize := cfg.Server.MaxRequestBodySize
if maxRequestBodySize == 0 {
maxRequestBodySize = server.MaxRequestBodyBytes // default: 10MB
}
logger.Info("server configuration",
slog.Int64("max_request_body_bytes", maxRequestBodySize),
)
// Build handler chain: panic recovery -> request size limit -> logging -> tracing -> metrics -> rate limiting -> auth -> routes
handler := server.PanicRecoveryMiddleware(
server.RequestSizeLimitMiddleware(
loggingMiddleware(
observability.TracingMiddleware(
observability.MetricsMiddleware(
rateLimitMiddleware.Handler(authMiddleware.Handler(mux)),
metricsRegistry,
tracerProvider,
),
tracerProvider,
),
logger,
),
tracerProvider,
maxRequestBodySize,
),
logger,
)