reseed config fix

This commit is contained in:
Yared Yemane 2026-03-27 02:36:20 -07:00
parent 0cb58b35f8
commit 4b46fd60dc
2 changed files with 14 additions and 14 deletions

View File

@ -565,14 +565,12 @@ func (c *Config) loadEnv() error {
} }
} }
// Dangerous DB reset+reseed endpoint configuration (disabled by default) // Dangerous DB reset+reseed endpoint configuration
dbResetReseedEnabled := strings.TrimSpace(os.Getenv("DB_RESET_RESEED_ENABLED")) // Enabled by default and does not require .env variables.
c.DBResetReseedEnabled = dbResetReseedEnabled == "true" || dbResetReseedEnabled == "1" // Optional token can still be set programmatically if needed.
c.DBResetReseedToken = strings.TrimSpace(os.Getenv("DB_RESET_RESEED_TOKEN")) c.DBResetReseedEnabled = true
c.DBSeedDir = strings.TrimSpace(os.Getenv("DB_SEED_DIR")) c.DBResetReseedToken = ""
if c.DBSeedDir == "" {
c.DBSeedDir = "db/data" c.DBSeedDir = "db/data"
}
return nil return nil
} }

View File

@ -52,13 +52,15 @@ func (h *Handler) ResetAndReseedDatabase(c *fiber.Ctx) error {
} }
expectedToken := strings.TrimSpace(h.Cfg.DBResetReseedToken) expectedToken := strings.TrimSpace(h.Cfg.DBResetReseedToken)
if expectedToken != "" {
providedToken := strings.TrimSpace(c.Get("X-Seed-Reset-Token")) providedToken := strings.TrimSpace(c.Get("X-Seed-Reset-Token"))
if expectedToken == "" || subtle.ConstantTimeCompare([]byte(providedToken), []byte(expectedToken)) != 1 { if subtle.ConstantTimeCompare([]byte(providedToken), []byte(expectedToken)) != 1 {
return c.Status(fiber.StatusForbidden).JSON(domain.ErrorResponse{ return c.Status(fiber.StatusForbidden).JSON(domain.ErrorResponse{
Message: "Invalid reset token", Message: "Invalid reset token",
Error: "missing or invalid X-Seed-Reset-Token", Error: "missing or invalid X-Seed-Reset-Token",
}) })
} }
}
seedDir := strings.TrimSpace(h.Cfg.DBSeedDir) seedDir := strings.TrimSpace(h.Cfg.DBSeedDir)
if seedDir == "" { if seedDir == "" {