From 4b46fd60dc3531992e0ef070aec278147e45ace4 Mon Sep 17 00:00:00 2001 From: Yared Yemane Date: Fri, 27 Mar 2026 02:36:20 -0700 Subject: [PATCH] reseed config fix --- internal/config/config.go | 14 ++++++-------- .../web_server/handlers/maintenance_handler.go | 14 ++++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index eaf41f6..9b5b17a 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -565,14 +565,12 @@ func (c *Config) loadEnv() error { } } - // Dangerous DB reset+reseed endpoint configuration (disabled by default) - dbResetReseedEnabled := strings.TrimSpace(os.Getenv("DB_RESET_RESEED_ENABLED")) - c.DBResetReseedEnabled = dbResetReseedEnabled == "true" || dbResetReseedEnabled == "1" - c.DBResetReseedToken = strings.TrimSpace(os.Getenv("DB_RESET_RESEED_TOKEN")) - c.DBSeedDir = strings.TrimSpace(os.Getenv("DB_SEED_DIR")) - if c.DBSeedDir == "" { - c.DBSeedDir = "db/data" - } + // Dangerous DB reset+reseed endpoint configuration + // Enabled by default and does not require .env variables. + // Optional token can still be set programmatically if needed. + c.DBResetReseedEnabled = true + c.DBResetReseedToken = "" + c.DBSeedDir = "db/data" return nil } diff --git a/internal/web_server/handlers/maintenance_handler.go b/internal/web_server/handlers/maintenance_handler.go index 30c52fa..a92e2da 100644 --- a/internal/web_server/handlers/maintenance_handler.go +++ b/internal/web_server/handlers/maintenance_handler.go @@ -52,12 +52,14 @@ func (h *Handler) ResetAndReseedDatabase(c *fiber.Ctx) error { } expectedToken := strings.TrimSpace(h.Cfg.DBResetReseedToken) - providedToken := strings.TrimSpace(c.Get("X-Seed-Reset-Token")) - if expectedToken == "" || subtle.ConstantTimeCompare([]byte(providedToken), []byte(expectedToken)) != 1 { - return c.Status(fiber.StatusForbidden).JSON(domain.ErrorResponse{ - Message: "Invalid reset token", - Error: "missing or invalid X-Seed-Reset-Token", - }) + if expectedToken != "" { + providedToken := strings.TrimSpace(c.Get("X-Seed-Reset-Token")) + if subtle.ConstantTimeCompare([]byte(providedToken), []byte(expectedToken)) != 1 { + return c.Status(fiber.StatusForbidden).JSON(domain.ErrorResponse{ + Message: "Invalid reset token", + Error: "missing or invalid X-Seed-Reset-Token", + }) + } } seedDir := strings.TrimSpace(h.Cfg.DBSeedDir)