chore: build
ci-api / test (push) Failing after 14m25s
ci-web / test (push) Failing after 8m17s

This commit is contained in:
Xor290
2026-09-20 16:14:29 +02:00
parent 76b1412968
commit 9e11f01c2c
15 changed files with 65 additions and 359 deletions
@@ -3,7 +3,6 @@ package config
import (
"errors"
"os"
"strconv"
"time"
)
@@ -31,13 +30,8 @@ type Config struct {
// Projets vitrine (abonnements de 1 à 12 mois, voir internal/projects).
VitrineDomain string // OMNEX_VITRINE_DOMAIN : les projets sont servis sur <namespace>.<domaine>
VitrineChartsDir string // OMNEX_VITRINE_CHARTS_DIR : charts backend/frontend/postgresql/redis/ingressroute du projet vitrine
VitrineBackendImage string // VITRINE_BACKEND_IMAGE, ex. registry/vitrine-backend:1.0.0
VitrineFrontendImage string // VITRINE_FRONTEND_IMAGE
// VitrineGraceDays : jours pendant lesquels un projet dont l'abonnement
// a expiré reste suspendu (données et sauvegardes conservées) avant sa
// suppression définitive. Un renouvellement pendant ce délai le relance.
VitrineGraceDays int
}
// Load lit la config. Fail-secure : secret JWT obligatoire ; en prod base + Redis aussi.
@@ -66,17 +60,8 @@ func Load() (Config, error) {
DockerHubPassword: os.Getenv("OMNEX_DOCKERHUB_PASSWORD"),
VitrineDomain: getenv("OMNEX_VITRINE_DOMAIN", "vitrine-omnex.club"),
VitrineChartsDir: getenv("OMNEX_VITRINE_CHARTS_DIR", "/charts-vitrine"),
VitrineBackendImage: os.Getenv("VITRINE_BACKEND_IMAGE"),
VitrineFrontendImage: os.Getenv("VITRINE_FRONTEND_IMAGE"),
VitrineGraceDays: 7,
}
if v := os.Getenv("OMNEX_VITRINE_GRACE_DAYS"); v != "" {
days, err := strconv.Atoi(v)
if err != nil || days < 0 || days > 365 {
return Config{}, errors.New("OMNEX_VITRINE_GRACE_DAYS doit être un entier entre 0 et 365")
}
cfg.VitrineGraceDays = days
}
if cfg.Env == "prod" {
@@ -107,21 +107,7 @@ func TestLoad_VitrineDefaults(t *testing.T) {
if err != nil {
t.Fatal(err)
}
if cfg.VitrineDomain != "vitrine-omnex.club" || cfg.VitrineGraceDays != 7 || cfg.VitrineChartsDir != "/charts-vitrine" {
if cfg.VitrineDomain != "vitrine-omnex.club" {
t.Errorf("défauts vitrine inattendus : %+v", cfg)
}
}
func TestLoad_VitrineGraceDaysInvalid(t *testing.T) {
t.Setenv("OMNEX_JWT_SECRET", "0123456789abcdef0123456789abcdef")
for _, v := range []string{"abc", "-1", "366"} {
t.Setenv("OMNEX_VITRINE_GRACE_DAYS", v)
if _, err := Load(); err == nil {
t.Errorf("OMNEX_VITRINE_GRACE_DAYS=%q accepté", v)
}
}
t.Setenv("OMNEX_VITRINE_GRACE_DAYS", "0")
if cfg, err := Load(); err != nil || cfg.VitrineGraceDays != 0 {
t.Errorf("grâce de 0 jour refusée ou mal lue : %v %d", err, cfg.VitrineGraceDays)
}
}