diff --git a/internal/cmd/flags_logging.go b/internal/cmd/flags_logging.go index 37b50999..dc767bdf 100644 --- a/internal/cmd/flags_logging.go +++ b/internal/cmd/flags_logging.go @@ -3,16 +3,14 @@ package cmd // Logging-related flags import ( + "github.com/github/gh-aw-mcpg/internal/config" "github.com/github/gh-aw-mcpg/internal/envutil" "github.com/spf13/cobra" ) // Logging flag defaults const ( - defaultLogDir = "/tmp/gh-aw/mcp-logs" - defaultPayloadDir = "/tmp/jq-payloads" - defaultPayloadPathPrefix = "" // Empty by default - use actual filesystem path - defaultPayloadSizeThreshold = 524288 // 512KB default threshold + defaultPayloadPathPrefix = "" // Empty by default - use actual filesystem path ) // Logging flag variables @@ -35,13 +33,13 @@ func init() { // getDefaultLogDir returns the default log directory, checking MCP_GATEWAY_LOG_DIR // environment variable first, then falling back to the hardcoded default func getDefaultLogDir() string { - return envutil.GetEnvString("MCP_GATEWAY_LOG_DIR", defaultLogDir) + return envutil.GetEnvString("MCP_GATEWAY_LOG_DIR", config.DefaultLogDir) } // getDefaultPayloadDir returns the default payload directory, checking MCP_GATEWAY_PAYLOAD_DIR // environment variable first, then falling back to the hardcoded default func getDefaultPayloadDir() string { - return envutil.GetEnvString("MCP_GATEWAY_PAYLOAD_DIR", defaultPayloadDir) + return envutil.GetEnvString("MCP_GATEWAY_PAYLOAD_DIR", config.DefaultPayloadDir) } // getDefaultPayloadPathPrefix returns the default payload path prefix, checking MCP_GATEWAY_PAYLOAD_PATH_PREFIX @@ -53,5 +51,5 @@ func getDefaultPayloadPathPrefix() string { // getDefaultPayloadSizeThreshold returns the default payload size threshold, checking // MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD environment variable first, then falling back to the hardcoded default func getDefaultPayloadSizeThreshold() int { - return envutil.GetEnvInt("MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD", defaultPayloadSizeThreshold) + return envutil.GetEnvInt("MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD", config.DefaultPayloadSizeThreshold) } diff --git a/internal/cmd/flags_logging_test.go b/internal/cmd/flags_logging_test.go index 69b83bc7..68210a67 100644 --- a/internal/cmd/flags_logging_test.go +++ b/internal/cmd/flags_logging_test.go @@ -3,6 +3,7 @@ package cmd import ( "testing" + "github.com/github/gh-aw-mcpg/internal/config" "github.com/stretchr/testify/assert" ) @@ -16,7 +17,7 @@ func TestGetDefaultLogDir(t *testing.T) { { name: "no env var - returns default", setEnv: false, - expected: defaultLogDir, + expected: config.DefaultLogDir, }, { name: "env var set - returns custom path", @@ -28,7 +29,7 @@ func TestGetDefaultLogDir(t *testing.T) { name: "empty env var - returns default", envValue: "", setEnv: true, - expected: defaultLogDir, + expected: config.DefaultLogDir, }, } @@ -56,7 +57,7 @@ func TestGetDefaultPayloadDir(t *testing.T) { { name: "no env var - returns default", setEnv: false, - expected: defaultPayloadDir, + expected: config.DefaultPayloadDir, }, { name: "env var set - returns custom path", @@ -68,7 +69,7 @@ func TestGetDefaultPayloadDir(t *testing.T) { name: "empty env var - returns default", envValue: "", setEnv: true, - expected: defaultPayloadDir, + expected: config.DefaultPayloadDir, }, } @@ -96,7 +97,7 @@ func TestGetDefaultPayloadSizeThreshold(t *testing.T) { { name: "no env var - returns default", setEnv: false, - expected: defaultPayloadSizeThreshold, + expected: config.DefaultPayloadSizeThreshold, }, { name: "valid env var", @@ -120,19 +121,19 @@ func TestGetDefaultPayloadSizeThreshold(t *testing.T) { name: "invalid value - non-numeric", envValue: "invalid", setEnv: true, - expected: defaultPayloadSizeThreshold, + expected: config.DefaultPayloadSizeThreshold, }, { name: "invalid value - negative", envValue: "-100", setEnv: true, - expected: defaultPayloadSizeThreshold, + expected: config.DefaultPayloadSizeThreshold, }, { name: "invalid value - zero", envValue: "0", setEnv: true, - expected: defaultPayloadSizeThreshold, + expected: config.DefaultPayloadSizeThreshold, }, } diff --git a/internal/cmd/root.go b/internal/cmd/root.go index 271b580c..db05efe4 100644 --- a/internal/cmd/root.go +++ b/internal/cmd/root.go @@ -220,7 +220,7 @@ func run(cmd *cobra.Command, args []string) error { // Apply payload directory flag (if different from default, it was explicitly set) if cmd.Flags().Changed("payload-dir") { cfg.Gateway.PayloadDir = payloadDir - } else if payloadDir != "" && payloadDir != defaultPayloadDir { + } else if payloadDir != "" && payloadDir != config.DefaultPayloadDir { // Environment variable was set cfg.Gateway.PayloadDir = payloadDir } @@ -236,7 +236,7 @@ func run(cmd *cobra.Command, args []string) error { // Apply payload size threshold flag (if different from default, it was explicitly set) if cmd.Flags().Changed("payload-size-threshold") { cfg.Gateway.PayloadSizeThreshold = payloadSizeThreshold - } else if payloadSizeThreshold != defaultPayloadSizeThreshold { + } else if payloadSizeThreshold != config.DefaultPayloadSizeThreshold { // Environment variable was set cfg.Gateway.PayloadSizeThreshold = payloadSizeThreshold } diff --git a/internal/config/config_logging.go b/internal/config/config_logging.go new file mode 100644 index 00000000..fd3af13f --- /dev/null +++ b/internal/config/config_logging.go @@ -0,0 +1,6 @@ +// Package config provides configuration loading and parsing. +// This file defines logging-related configuration and defaults. +package config + +// DefaultLogDir is the default directory for storing log files. +const DefaultLogDir = "/tmp/gh-aw/mcp-logs" diff --git a/internal/config/validation_env.go b/internal/config/validation_env.go index 9bca7ef4..d61177ee 100644 --- a/internal/config/validation_env.go +++ b/internal/config/validation_env.go @@ -140,7 +140,7 @@ func ValidateContainerizedEnvironment(containerID string) *EnvValidationResult { // Check if log directory is mounted (warning only) logDir := os.Getenv("MCP_GATEWAY_LOG_DIR") if logDir == "" { - logDir = "/tmp/gh-aw/mcp-logs" + logDir = DefaultLogDir } result.LogDirMounted = checkLogDirMounted(containerID, logDir) logEnv.Printf("Log directory mount check: mounted=%v, logDir=%s", result.LogDirMounted, logDir)