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
This commit is contained in:
Jeremie Fraeys 2026-02-18 16:54:24 -05:00
parent 2101e4a01c
commit 4bee42493b
No known key found for this signature in database

View file

@ -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))