36 lines
811 B
Go
36 lines
811 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
)
|
|
|
|
// SearchConfig holds Elasticsearch/OpenSearch configuration
|
|
type SearchConfig struct {
|
|
URL string
|
|
Username string
|
|
Password string
|
|
UseSSL bool
|
|
IndexPrefix string
|
|
}
|
|
|
|
// LoadSearchConfig loads search configuration from environment variables
|
|
func LoadSearchConfig() *SearchConfig {
|
|
useSSL, _ := strconv.ParseBool(getEnv("SEARCH_USE_SSL", "false"))
|
|
|
|
return &SearchConfig{
|
|
URL: getEnv("SEARCH_URL", "http://localhost:9200"),
|
|
Username: getEnv("SEARCH_USERNAME", ""),
|
|
Password: getEnv("SEARCH_PASSWORD", ""),
|
|
UseSSL: useSSL,
|
|
IndexPrefix: getEnv("SEARCH_INDEX_PREFIX", "explorer"),
|
|
}
|
|
}
|
|
|
|
func getEnv(key, defaultValue string) string {
|
|
if value := os.Getenv(key); value != "" {
|
|
return value
|
|
}
|
|
return defaultValue
|
|
}
|