feat: authsession service

This commit is contained in:
Ilia Denisov
2026-04-08 16:23:07 +02:00
committed by GitHub
parent 28f04916af
commit 86a68ed9d0
174 changed files with 31732 additions and 112 deletions
+72
View File
@@ -0,0 +1,72 @@
package main
import (
"context"
"errors"
"fmt"
"os"
"os/signal"
"syscall"
"galaxy/authsession/internal/app"
"galaxy/authsession/internal/config"
"galaxy/authsession/internal/logging"
"galaxy/authsession/internal/telemetry"
)
func main() {
if err := run(); err != nil {
_, _ = fmt.Fprintf(os.Stderr, "authsession: %v\n", err)
os.Exit(1)
}
}
func run() error {
cfg, err := config.LoadFromEnv()
if err != nil {
return err
}
logger, err := logging.New(cfg.Logging.Level)
if err != nil {
return fmt.Errorf("build logger: %w", err)
}
defer func() {
_ = logging.Sync(logger)
}()
rootCtx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
defer stop()
telemetryRuntime, err := telemetry.NewProcess(rootCtx, telemetry.ProcessConfig{
ServiceName: cfg.Telemetry.ServiceName,
TracesExporter: cfg.Telemetry.TracesExporter,
MetricsExporter: cfg.Telemetry.MetricsExporter,
TracesProtocol: cfg.Telemetry.TracesProtocol,
MetricsProtocol: cfg.Telemetry.MetricsProtocol,
StdoutTracesEnabled: cfg.Telemetry.StdoutTracesEnabled,
StdoutMetricsEnabled: cfg.Telemetry.StdoutMetricsEnabled,
}, logger)
if err != nil {
return fmt.Errorf("build telemetry runtime: %w", err)
}
defer func() {
shutdownCtx, cancel := context.WithTimeout(context.Background(), cfg.ShutdownTimeout)
defer cancel()
_ = telemetryRuntime.Shutdown(shutdownCtx)
}()
runtime, err := app.NewRuntime(rootCtx, cfg, logger, telemetryRuntime)
if err != nil {
return err
}
defer func() {
_ = runtime.Close()
}()
if err := runtime.App.Run(rootCtx); err != nil && !errors.Is(err, context.Canceled) {
return err
}
return nil
}