From 4bee42493b7151dfd3bb562e3b99d34190fb1c06 Mon Sep 17 00:00:00 2001 From: Jeremie Fraeys Date: Wed, 18 Feb 2026 16:54:24 -0500 Subject: [PATCH] refactor: adopt PathRegistry in api server_config.go Update internal/api/server_config.go to use centralized PathRegistry: Changes: - Update EnsureLogDirectory() to use config.FromEnv().LogDir() with EnsureDir() - Update Validate() to use PathRegistry for default BasePath and DataDir - Remove hardcoded /tmp/ml-experiments default - Use paths.ExperimentsDir() and paths.DataDir() for consistent paths Benefits: - Consistent directory locations via PathRegistry - Centralized directory creation with EnsureDir() - Better error handling for directory creation --- internal/api/server_config.go | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/internal/api/server_config.go b/internal/api/server_config.go index 275d837..6d78f7d 100644 --- a/internal/api/server_config.go +++ b/internal/api/server_config.go @@ -3,7 +3,6 @@ package api import ( "fmt" "log" - "os" "path/filepath" "strings" @@ -135,15 +134,20 @@ func secureFileRead(path string) ([]byte, error) { return fileutil.SecureFileRead(path) } -// EnsureLogDirectory creates the log directory if needed +// EnsureLogDirectory creates the log directory if needed using PathRegistry func (c *ServerConfig) EnsureLogDirectory() error { if c.Logging.File == "" { return nil } - logDir := filepath.Dir(c.Logging.File) - log.Printf("Creating log directory: %s", logDir) - return os.MkdirAll(logDir, 0750) + // Use PathRegistry for consistent log directory management + paths := config.FromEnv() + logDir := paths.LogDir() + + if err := paths.EnsureDir(logDir); err != nil { + return fmt.Errorf("failed to create log directory: %w", err) + } + return nil } // BuildAuthConfig creates the auth configuration @@ -163,11 +167,14 @@ func (c *ServerConfig) Validate() error { c.Server.Address = ":8080" } + // Use PathRegistry for consistent path management + paths := config.FromEnv() + if c.BasePath == "" { - c.BasePath = "/tmp/ml-experiments" + c.BasePath = paths.ExperimentsDir() } if c.DataDir == "" { - c.DataDir = config.DefaultDataDir + c.DataDir = paths.DataDir() } backend := strings.ToLower(strings.TrimSpace(c.Queue.Backend))