// retention-api ist der Aufrufpunkt fuer RET-06-API: Backend-HTTP-Dienst // fuer die Aufbewahrungsfristen-Konfiguration (CRUD + Vorschauliste). // Getrennt vom scrub-metrics-/restoretest-metrics-Muster, weil dies KEIN // Prometheus-/OPS-03-Endpunkt ist, sondern ein echter Admin-API-Dienst // (Next.js-Frontend als eigenes Folgeticket). package main import ( "context" "log" "net/http" "os" "github.com/jackc/pgx/v5/pgxpool" "gitea.perlbach24.de/scripte/nexarch/archive/internal/retentionapi" ) func main() { dsn := os.Getenv("NEXARCH_RETENTION_TENANT_DSN") if dsn == "" { log.Fatal("NEXARCH_RETENTION_TENANT_DSN muss gesetzt sein") } addr := os.Getenv("NEXARCH_RETENTION_API_LISTEN_ADDR") if addr == "" { addr = "127.0.0.1:8092" } ctx := context.Background() pool, err := pgxpool.New(ctx, dsn) if err != nil { log.Fatalf("datenbankverbindung: %v", err) } defer pool.Close() mux := http.NewServeMux() retentionapi.Mount(mux, pool) mux.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) }) log.Printf("retention-api: listening on %s", addr) if err := http.ListenAndServe(addr, mux); err != nil { log.Fatalf("http server: %v", err) } }