Добавлены новые возможности для работы с файловыми логами Docker-сервисов: - Эндпоинты для получения списка логов и хвоста лог-файла. - Очистка лог-файлов с возможностью выбора режима (truncate или delete) и запись в аудит очистки. - Обновлена документация и конфигурация для поддержки новых функций. Co-authored-by: Cursor <[email protected]>
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
// Package config loads control-plane settings from the environment (see architecture plan §1).
|
|
package config
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
// Env holds shared process configuration for cmd/* entrypoints.
|
|
type Env struct {
|
|
HTTPAddr string
|
|
ServiceName string
|
|
GitSHA string
|
|
// DatabaseURL is the PostgreSQL DSN when SQL-backed repositories are wired (empty in dev).
|
|
DatabaseURL string
|
|
// BrokerURL is NATS/Redis when the reference profile uses a message broker (empty in microVPS).
|
|
BrokerURL string
|
|
// RuntimeLogsDir is the absolute host path to Docker runtime log files (evobgp-all only).
|
|
RuntimeLogsDir string
|
|
}
|
|
|
|
// Load reads EVOBGP_* environment variables with safe defaults.
|
|
func Load() Env {
|
|
e := Env{
|
|
HTTPAddr: ":8080",
|
|
}
|
|
if v := strings.TrimSpace(os.Getenv("EVOBGP_HTTP_ADDR")); v != "" {
|
|
e.HTTPAddr = v
|
|
}
|
|
if v := strings.TrimSpace(os.Getenv("EVOBGP_SERVICE")); v != "" {
|
|
e.ServiceName = v
|
|
}
|
|
e.GitSHA = strings.TrimSpace(os.Getenv("EVOBGP_GIT_SHA"))
|
|
e.DatabaseURL = strings.TrimSpace(os.Getenv("EVOBGP_DATABASE_URL"))
|
|
e.BrokerURL = strings.TrimSpace(os.Getenv("EVOBGP_BROKER_URL"))
|
|
if v := strings.TrimSpace(os.Getenv("EVOBGP_RUNTIME_LOGS_DIR")); v != "" {
|
|
if abs, err := filepath.Abs(v); err == nil {
|
|
e.RuntimeLogsDir = abs
|
|
} else {
|
|
e.RuntimeLogsDir = v
|
|
}
|
|
}
|
|
return e
|
|
}
|