feat: load explicit configuration references and remove implicit env overlays

This commit is contained in:
2026-09-26 16:14:54 +08:00
parent 4bf6e88cfe
commit d598b2ebee
94 changed files with 1355 additions and 1759 deletions

View File

@@ -2,6 +2,7 @@ package main
import (
"context"
"flag"
"log"
"os"
"os/signal"
@@ -42,6 +43,7 @@ func registerRoutes(application *omni.App, users service.UserRepository, logger
}
func main() {
flag.Parse()
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
defer stop()
if err := runReference(ctx); err != nil {
@@ -49,29 +51,9 @@ func main() {
}
}
func referenceConfig() (omni.Config, error) {
settings, err := omni.LoadConfig("")
if err != nil {
return settings, err
}
// Preserve the example's loopback default and legacy address variable.
if strings.TrimSpace(os.Getenv("GO_OMNI_HTTP_ADDR")) == "" {
settings.Address = strings.TrimSpace(os.Getenv("GO_OMNI_ADDR"))
if settings.Address == "" {
settings.Address = "127.0.0.1:8080"
}
}
if settings.Log.Service == "" {
settings.Log.Service = "reference-api"
}
if settings.Log.Environment == "" {
settings.Log.Environment = "local"
}
if strings.TrimSpace(os.Getenv("GO_OMNI_LOG_OUTPUT")) == "" {
settings.Log.Output = "stdout"
}
return settings, nil
}
var configPath = flag.String("config", "examples/reference/config.yaml", "configuration file")
func referenceConfig() (omni.Config, error) { return omni.LoadConfig(*configPath) }
func runReference(ctx context.Context) error {
settings, err := referenceConfig()
@@ -106,10 +88,9 @@ func openUsers(ctx context.Context, logger *logx.Logger) (service.UserRepository
if strings.TrimSpace(os.Getenv("GO_OMNI_DB_DSN")) == "" {
return repository.NewMemoryUsers(), func() error { return nil }, "memory", nil
}
cfg, err := database.ConfigFromEnv("GO_OMNI_DB_")
if err != nil {
return nil, nil, "", err
}
cfg := database.DefaultConfig()
cfg.Driver = "mysql"
cfg.DSN = os.Getenv("GO_OMNI_DB_DSN")
db, err := database.Open(ctx, cfg)
if err != nil {
return nil, nil, "", err